1import { Action } from './Action';
2import { SchedulerAction } from '../types';
3import { Subscription } from '../Subscription';
4import { AsyncScheduler } from './AsyncScheduler';
5/**
6 * We need this JSDoc comment for affecting ESDoc.
7 * @ignore
8 * @extends {Ignored}
9 */
10export declare class AsyncAction<T> extends Action<T> {
11    protected scheduler: AsyncScheduler;
12    protected work: (this: SchedulerAction<T>, state?: T) => void;
13    id: any;
14    state: T;
15    delay: number;
16    protected pending: boolean;
17    constructor(scheduler: AsyncScheduler, work: (this: SchedulerAction<T>, state?: T) => void);
18    schedule(state?: T, delay?: number): Subscription;
19    protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay?: number): any;
20    protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay?: number): any;
21    /**
22     * Immediately executes this action and the `work` it contains.
23     * @return {any}
24     */
25    execute(state: T, delay: number): any;
26    protected _execute(state: T, delay: number): any;
27    /** @deprecated This is an internal implementation detail, do not use. */
28    _unsubscribe(): void;
29}
30