import { Base, BaseError, Type } from "igniteui-angular-core";
import { WorkItem_ExceptionInfo } from "./WorkItem_ExceptionInfo";
import { WorkItemContinuationType } from "./WorkItemContinuationType";
/**
 * @hidden
 */
export declare abstract class WorkItem extends Base {
    static $t: Type;
    private static readonly m;
    private j;
    private n;
    private readonly o;
    private a;
    private b;
    private k;
    constructor(a: WorkItemContinuationType, b: WorkItem, c: boolean);
    static c(a: () => void, b?: WorkItemContinuationType): WorkItem;
    static d(a: () => WorkItem, b?: WorkItemContinuationType): WorkItem;
    static e<TResult>($tResult: Type, a: () => TResult, b?: WorkItemContinuationType): WorkItem$1<TResult>;
    static f<TResult>($tResult: Type, a: () => WorkItem$1<TResult>, b?: WorkItemContinuationType): WorkItem$1<TResult>;
    w(a: WorkItemScheduler): void;
    protected abstract p(a: WorkItemScheduler): boolean;
    q(a: WorkItem, b: WorkItemScheduler): boolean;
    static g<T>($t: Type, a: T): WorkItem$1<T>;
    static h<T>($t: Type, a: T): WorkItem$1<T>;
    protected x(a: WorkItem): void;
    y(): void;
    private z;
    protected aa(a: WorkItem_ExceptionInfo): void;
    private ab;
    private ac;
    protected u(a: WorkItem_ExceptionInfo): {
        ret: boolean;
        p0?: WorkItem_ExceptionInfo;
    };
    readonly v: BaseError;
    protected get_s(): boolean;
    protected readonly s: boolean;
    r: boolean;
    protected get_t(): boolean;
    readonly t: boolean;
    readonly i: WorkItem;
    readonly l: WorkItemContinuationType;
}
/**
 * @hidden
 */
export declare class WorkItem_WorkItemSync extends WorkItem {
    static $t: Type;
    private readonly ad;
    constructor(a: () => void, b: WorkItemContinuationType, c: WorkItem, d: boolean);
    protected p(a: WorkItemScheduler): boolean;
}
/**
 * @hidden
 */
export declare abstract class WorkItem$1<TResult> extends WorkItem {
    static $t: Type;
    protected $tResult: Type;
    constructor($tResult: Type, a: WorkItemContinuationType, b: WorkItem, c: boolean);
    ad: TResult;
}
/**
 * @hidden
 */
export declare class WorkItem_WorkItemSync$1<TResult> extends WorkItem$1<TResult> {
    static $t: Type;
    protected $tResult: Type;
    private readonly ae;
    constructor($tResult: Type, a: () => TResult, b: WorkItemContinuationType, c: WorkItem, d: boolean);
    protected p(a: WorkItemScheduler): boolean;
}
/**
 * @hidden
 */
export declare class WorkItem_WorkItemAsync extends WorkItem {
    static $t: Type;
    private ad;
    private readonly ae;
    constructor(a: () => WorkItem, b: WorkItemContinuationType, c: WorkItem, d: boolean);
    protected p(a: WorkItemScheduler): boolean;
}
/**
 * @hidden
 */
export declare class WorkItem_WorkItemAsync$1<TResult> extends WorkItem$1<TResult> {
    static $t: Type;
    protected $tResult: Type;
    private af;
    private readonly ag;
    constructor($tResult: Type, a: () => WorkItem$1<TResult>, b: WorkItemContinuationType, c: WorkItem, d: boolean);
    protected p(a: WorkItemScheduler): boolean;
    protected x(a: WorkItem): void;
    ae: WorkItem$1<TResult>;
}
/**
 * @hidden
 */
export declare abstract class WorkItemScheduler extends Base {
    static $t: Type;
    abstract d(a: WorkItem): void;
    abstract e(a: WorkItem): void;
    static a(): WorkItemScheduler;
    static b(): WorkItemScheduler;
    static c(): WorkItemScheduler;
}
/**
 * @hidden
 */
export declare class WorkItemScheduler_SynchronousImpl extends WorkItemScheduler {
    static $t: Type;
    private readonly f;
    constructor();
    d(a: WorkItem): void;
    e(a: WorkItem): void;
}
/**
 * @hidden
 */
export declare class WorkItemScheduler_TimeSlicedImpl extends WorkItemScheduler {
    static $t: Type;
    private readonly f;
    constructor();
    d(a: WorkItem): void;
    e(a: WorkItem): void;
}
/**
 * @hidden
 */
export declare class WorkItemExtensions extends Base {
    static $t: Type;
    static n(a: WorkItem): void;
    static o(a: WorkItem): void;
    static m<TResult>($tResult: Type, a: WorkItem$1<TResult>): TResult;
    static a(a: WorkItem, b: () => void, c?: WorkItemContinuationType): WorkItem;
    static b(a: WorkItem, b: (arg1: WorkItem) => void, c?: WorkItemContinuationType): WorkItem;
    static e<T>($t: Type, a: WorkItem$1<T>, b: (arg1: WorkItem$1<T>) => void, c?: WorkItemContinuationType): WorkItem;
    static c(a: WorkItem, b: () => WorkItem, c?: WorkItemContinuationType): WorkItem;
    static d(a: WorkItem, b: (arg1: WorkItem) => WorkItem, c?: WorkItemContinuationType): WorkItem;
    static f<T>($t: Type, a: WorkItem$1<T>, b: (arg1: WorkItem$1<T>) => WorkItem, c?: WorkItemContinuationType): WorkItem;
    static g<TResult>($tResult: Type, a: WorkItem, b: () => TResult, c?: WorkItemContinuationType): WorkItem$1<TResult>;
    static h<TResult>($tResult: Type, a: WorkItem, b: (arg1: WorkItem) => TResult, c?: WorkItemContinuationType): WorkItem$1<TResult>;
    static k<T, TResult>($t: Type, $tResult: Type, a: WorkItem$1<T>, b: (arg1: WorkItem$1<T>) => TResult, c?: WorkItemContinuationType): WorkItem$1<TResult>;
    static i<TResult>($tResult: Type, a: WorkItem, b: () => WorkItem$1<TResult>, c?: WorkItemContinuationType): WorkItem$1<TResult>;
    static j<TResult>($tResult: Type, a: WorkItem, b: (arg1: WorkItem) => WorkItem$1<TResult>, c?: WorkItemContinuationType): WorkItem$1<TResult>;
    static l<T, TResult>($t: Type, $tResult: Type, a: WorkItem$1<T>, b: (arg1: WorkItem$1<T>) => WorkItem$1<TResult>, c?: WorkItemContinuationType): WorkItem$1<TResult>;
}
/**
 * @hidden
 */
export declare class WorkItemExtensions_WorkItemCompleted extends WorkItem {
    static $t: Type;
    static readonly ad: WorkItemExtensions_WorkItemCompleted;
    constructor();
    protected p(a: WorkItemScheduler): boolean;
    protected x(a: WorkItem): void;
}
/**
 * @hidden
 */
export declare class WorkItemExtensions_WorkItemCompleted$1<T> extends WorkItem$1<T> {
    static $t: Type;
    protected $t: Type;
    constructor($t: Type);
    protected p(a: WorkItemScheduler): boolean;
    protected x(a: WorkItem): void;
}
