1/*
2 * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16export declare interface I {
17    f1: Object;
18    f2: Array<Object>;
19    [key: string]: Object;
20}
21
22export declare function foo(p: Object): void
23
24export declare interface I2 {
25    f1?: Object;
26    f2?: Array<Object>;
27    f3?: any;
28}
29
30export declare interface I3 {
31    f1: object;
32    f2?: object;
33    f3: Array<object>;
34}
35
36export declare class TaskGroup {}
37export declare enum Priority { HIGH, MEDIUM, LOW }
38
39export declare function bar(p: object, q?: object): void;
40export declare function applyToUnknown(fn: (a: unknown) => void);
41export declare function fooExecute(func: Function, ...args: unknown[]): Promise<unknown>;
42export declare function fooExecute(group: TaskGroup, priority?: Priority): Promise<unknown[]>;
43
44export declare class C {
45    a?: any;
46    b?: {
47        [key: string]: Object;
48    };
49}
50export declare function getDynamicObject(): {
51    [key: string]: Object
52};
53export declare function f(a: number): void;
54
55export class DynLibC {}
56export interface DynLibI {}
57export interface DynLibIC extends DynLibC {}
58export interface DynLibII extends DynLibI {}
59export class DynLibCC extends DynLibC {}
60export class DynLibCI implements DynLibI {}
61
62export let dynamic_array: Array<any>;
63export declare class C1 {}
64
65export declare function f2(c: C1): void;
66
67export type Length = string | number | Resource;
68export interface Resource {
69  readonly id: number;
70  readonly type: number;
71}
72export type Padding = {
73  top?: Length;
74  right?: Length;
75  bottom?: Length;
76  left?: Length;
77}
78export type Margin = Padding;
79export interface Position {
80    x?: Length;
81    y?: Length;
82}
83
84export function padding(value: Padding | Length): any;
85export function margin(value: Margin | Length): any;
86export function position(value: Position): any;
87
88export declare interface Resource {}
89export declare type ResourceStr = string | Resource;
90
91export declare function resourceFoo(p: ResourceStr): string;
92
93export declare interface Point {
94    x: string;
95    y: string;
96}
97
98export declare function myFoo(x: Point);
99export declare function myFoo2(x: any);
100
101declare class A {
102    a: number;
103    b: string;
104}
105
106declare class B {
107    a: number;
108}
109
110export declare function bad_func(): A & B;
111
112export type IndexedSignatureType = {
113    [key: string]: string;
114}
115
116export declare function postCardAction(comp: Object, action: Object): void;