export interface ZoneType {
    root: ZoneType;
    current: ZoneType;
    name?: string;
    __symbol__?: (name: string) => string;
    run: <T>(fn: () => T) => T;
}
export interface WindowWithZone {
    Zone?: ZoneType;
    setTimeout: typeof setTimeout;
    setInterval: typeof setInterval;
    clearTimeout: typeof clearTimeout;
    clearInterval: typeof clearInterval;
    requestAnimationFrame: typeof requestAnimationFrame;
    cancelAnimationFrame: typeof cancelAnimationFrame;
    MutationObserver: typeof MutationObserver;
}
export declare function getZoneJsOriginalDom<Target, Name extends keyof Target & string>(target: Target, name: Name): Target[Name];
export declare function cxSetTimeout(callback: () => void, delay?: number): ReturnType<typeof setTimeout>;
export declare function cxSetInterval(callback: () => void, delay?: number): ReturnType<typeof setInterval>;
export declare function cxClearTimeout(id: ReturnType<typeof setTimeout>): void;
export declare function cxClearInterval(id: ReturnType<typeof setInterval>): void;
export declare function cxRequestAnimationFrame(callback: FrameRequestCallback): number;
export declare function cxCancelAnimationFrame(id: number): void;
export declare function createCxMutationObserver(callback: MutationCallback): MutationObserver;
export declare function cxRunOutsideZone<T>(fn: () => T): T;
