import { StateHandler } from '../handler/state-handler';
import { HandlerResponse, StreamStore } from '../handler/handler';
import { Subscription } from 'rxjs';
export interface IntentClass {
}
export interface IntentConstructor {
    new (dispatch: (type: string, payload: any) => void, handlers: {
        [key: string]: HandlerResponse;
    }): IntentClass;
}
export declare function intent<T extends IntentConstructor>(Base: T): any;
export declare class Intent extends StateHandler {
    private history;
    private children;
    private parent;
    constructor(parent?: Intent | null);
    private addChild;
    private removeChild;
    dispose(): void;
    prepare(parent?: Intent | null): void;
    subscribe(props: {
        [key: string]: any;
    }): Subscription;
    clone(...args: any[]): this;
    push(key: string, args?: any): Promise<any>;
    getStreamStore(): StreamStore;
    callback<Args = any, ReturnType = any>(key: string, v?: any): (args?: Args) => Promise<ReturnType>;
    private findSubjects;
    private findParentSubjects;
    private findChildrenSubjects;
    private findHistory;
    private findParentHistory;
    private findChildrenHistory;
}
