import "reflect-metadata";
export interface INativeComponent {
}
export interface INotifyPropertyChanging {
    onPropertyChanging(name: string, newValue: any, oldValue: any): void;
}
export interface INotifyPropertyChanged {
    onPropertyChanged(name: string): void;
}
export interface IClassOf<T> extends Function {
    new (...v: any[]): T;
}
export declare type IAtomElement = HTMLElement | INativeComponent;
export declare type PathList = string[];
export interface INameValuePairs {
    [key: string]: any;
}
export interface INameValues {
    [key: string]: (string | number | boolean);
}
export interface IDisposable {
    dispose(): void;
}
export interface IRect {
    x?: number;
    y?: number;
    width?: number;
    height?: number;
}
export declare type CancelReason = "cancelled" | "timeout";
/**
 *
 *
 * @export
 * @class CancelToken
 */
export declare class CancelToken implements IDisposable {
    private listeners;
    private mCancelled;
    readonly cancelled: (CancelReason | null | undefined);
    private cancelTimeout;
    constructor(timeout?: number);
    cancel(r?: CancelReason): void;
    reset(): void;
    dispose(): void;
    registerForCancel(f: (r: CancelReason) => void): void;
}
export declare class ArrayHelper {
    static remove<T>(a: T[], filter: (item: T) => boolean): boolean;
}
export interface IUMDClass {
    debug: boolean;
    resolveViewClassAsync(path: string): Promise<any>;
    mockType(type: any, name: string): void;
    inject(type: any, name: string): void;
    resolveType(type: any): any;
    resolvePath(path: string): string;
    import<T>(path: string): Promise<T>;
}
export declare const DI: any;
export declare const UMD: any;
//# sourceMappingURL=types.d.ts.map