import { Observable } from 'rxjs';
import { ActionContainer } from '../../containers/action-container';
import { ActionButton } from '../action-button/action-button';
export declare class ActionButtonAsync<T> extends ActionButton {
    /**
     * Function to execute asynchronously on action button click.
     */
    asyncExecute: MsftSme.Func1<T, Observable<T>>;
    protected targetState: {
        [targetUniqueReference: string]: any;
    };
    protected waitForUIStateUpdate: boolean;
    protected skipBusyHandling: boolean;
    /**
     * Constructor for ActionButtonAsync.
     */
    constructor();
    execute(target?: T): void;
    setActionState(target: any, container: ActionContainer): void;
    protected getTransitionState(target: T): any;
    protected preExecute(target: T): void;
    protected onExecute(target: T): Observable<T>;
    protected postExecute(target: T): void;
    protected markTargetAsBusy(target: any): void;
    private markIndividualTargetAsBusy;
    protected markTargetAsNotBusy(target: any): void;
    protected markIndividualTargetParseTarget(target: any, index?: number): any;
    private markIndividualTargetAsNotBusy;
    protected isDataRefreshed(preState: any, postState: any): boolean;
    private isArray;
}
