import { Base, BaseError, Type } from "igniteui-react-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;
    };
    get v(): BaseError;
    protected get_s(): boolean;
    protected get s(): boolean;
    get r(): boolean;
    set r(a: boolean);
    protected get_t(): boolean;
    get t(): boolean;
    get i(): WorkItem;
    get 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 e(a: WorkItem): void;
    abstract f(a: WorkItem): void;
    abstract g(): void;
    static b(): WorkItemScheduler;
    static c(): WorkItemScheduler;
    static d(): WorkItemScheduler;
    static a(a: number, b: number): WorkItemScheduler;
}
/**
 * @hidden
 */
export declare class WorkItemScheduler_SynchronousImpl extends WorkItemScheduler {
    static $t: Type;
    private readonly h;
    constructor();
    e(a: WorkItem): void;
    f(a: WorkItem): void;
    g(): void;
}
/**
 * @hidden
 */
export declare class WorkItemScheduler_TimeSlicedImpl extends WorkItemScheduler {
    static $t: Type;
    private readonly j;
    private readonly l;
    private readonly n;
    private k;
    private h;
    private i;
    private m;
    constructor(a: number, b: number);
    private o;
    e(a: WorkItem): void;
    f(a: WorkItem): void;
    g(): void;
}
/**
 * @hidden
 */
export declare class WorkItemExtensions extends Base {
    static $t: Type;
    static o(a: WorkItem): void;
    static p(a: WorkItem): void;
    static n(a: WorkItem, b: number, c: number): WorkItemScheduler;
    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;
}
