1cb93a386Sopenharmony_cideclare namespace public_api { 2cb93a386Sopenharmony_ci export interface CanvasKit { 3cb93a386Sopenharmony_ci publicExtension(myRects: InputFlattenedRectArray): number; 4cb93a386Sopenharmony_ci sayHello(x: number, y: number): void; 5cb93a386Sopenharmony_ci publicFunction(input: string): void; 6cb93a386Sopenharmony_ci withObject(obj: CompoundObj): void; 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci readonly Extension: ExtensionConstructor; 9cb93a386Sopenharmony_ci readonly Something: SomethingConstructor; 10cb93a386Sopenharmony_ci } 11cb93a386Sopenharmony_ci 12cb93a386Sopenharmony_ci export interface ExtensionConstructor { 13cb93a386Sopenharmony_ci new(): Extension; 14cb93a386Sopenharmony_ci new(name: string): Extension; 15cb93a386Sopenharmony_ci } 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_ci export interface SomethingConstructor { 18cb93a386Sopenharmony_ci new(name: string): Something; 19cb93a386Sopenharmony_ci } 20cb93a386Sopenharmony_ci 21cb93a386Sopenharmony_ci export interface Extension extends EmbindObject<Extension> { 22cb93a386Sopenharmony_ci getProp(): string; 23cb93a386Sopenharmony_ci setProp(p: string): void; 24cb93a386Sopenharmony_ci } 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci export interface Something extends EmbindObject<Something> { 27cb93a386Sopenharmony_ci getName(): string; 28cb93a386Sopenharmony_ci setName(name: string): void; 29cb93a386Sopenharmony_ci } 30cb93a386Sopenharmony_ci 31cb93a386Sopenharmony_ci export interface CompoundObj { 32cb93a386Sopenharmony_ci alpha: number; 33cb93a386Sopenharmony_ci beta: string; 34cb93a386Sopenharmony_ci gamma?: number; 35cb93a386Sopenharmony_ci } 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci export type InputFlattenedRectArray = Float32Array | number[]; 38cb93a386Sopenharmony_ci export type TypedArray = Float32Array | Int32Array; 39cb93a386Sopenharmony_ci 40cb93a386Sopenharmony_ci export interface EmbindObject<T extends EmbindObject<T>> { 41cb93a386Sopenharmony_ci clone(): T; 42cb93a386Sopenharmony_ci delete(): void; 43cb93a386Sopenharmony_ci deleteAfter(): void; 44cb93a386Sopenharmony_ci isAliasOf(other: any): boolean; 45cb93a386Sopenharmony_ci isDeleted(): boolean; 46cb93a386Sopenharmony_ci } 47cb93a386Sopenharmony_ci} 48