1/* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20import Vm from './index'; 21import { TemplateInterface } from './compiler'; 22 23export interface ComputedInterface { 24 [key: string]: Function | WritableComputedOptions<any> 25} 26 27type ComputedGetter<T> = (ctx?: any) => T 28type ComputedSetter<T> = (v: T) => void 29 30interface WritableComputedOptions<T> { 31 get: ComputedGetter<T>; 32 set?: ComputedSetter<T>; 33} 34 35export type cssType = Record<string, any>; 36export type Props = string[]; 37export type PropOptions = string[] | {[key: string]: {default?: string}}; 38 39export type VmOptions = Partial<Record<string, any>>; 40 41export interface ExternalBindingInterface { 42 parent: Vm; 43 template: TemplateInterface; 44} 45 46export interface MediaStatusInterface<T, K> { 47 'orientation': T, 48 'width': T, 49 'height': T, 50 'resolution': T, 51 'device-type': T, 52 'aspect-ratio': T, 53 'device-width': T, 54 'device-height': T, 55 'dark-mode': T, 56 'round-screen': K 57} 58