48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
|
declare namespace public_api {
|
||
|
export interface CanvasKit {
|
||
|
publicExtension(myRects: InputFlattenedRectArray): number;
|
||
|
sayHello(x: number, y: number): void;
|
||
|
publicFunction(input: string): void;
|
||
|
withObject(obj: CompoundObj): void;
|
||
|
|
||
|
readonly Extension: ExtensionConstructor;
|
||
|
readonly Something: SomethingConstructor;
|
||
|
}
|
||
|
|
||
|
export interface ExtensionConstructor {
|
||
|
new(): Extension;
|
||
|
new(name: string): Extension;
|
||
|
}
|
||
|
|
||
|
export interface SomethingConstructor {
|
||
|
new(name: string): Something;
|
||
|
}
|
||
|
|
||
|
export interface Extension extends EmbindObject<Extension> {
|
||
|
getProp(): string;
|
||
|
setProp(p: string): void;
|
||
|
}
|
||
|
|
||
|
export interface Something extends EmbindObject<Something> {
|
||
|
getName(): string;
|
||
|
setName(name: string): void;
|
||
|
}
|
||
|
|
||
|
export interface CompoundObj {
|
||
|
alpha: number;
|
||
|
beta: string;
|
||
|
gamma?: number;
|
||
|
}
|
||
|
|
||
|
export type InputFlattenedRectArray = Float32Array | number[];
|
||
|
export type TypedArray = Float32Array | Int32Array;
|
||
|
|
||
|
export interface EmbindObject<T extends EmbindObject<T>> {
|
||
|
clone(): T;
|
||
|
delete(): void;
|
||
|
deleteAfter(): void;
|
||
|
isAliasOf(other: any): boolean;
|
||
|
isDeleted(): boolean;
|
||
|
}
|
||
|
}
|