import { AttrInitCallBack } from '../rawsets/AttrInitCallBack';
import { ElementInitCallBack } from '../rawsets/ElementInitCallBack';
import { ComponentSet } from '../components/ComponentSet';
import { RawSet } from '../rawsets/RawSet';
import { Render } from '../rawsets/Render';
import { Attrs } from '../rawsets/Attrs';
import { Config } from '../configs/Config';
export interface OperatorAround {
    beforeAttr?: (value: string | null | undefined, opratorExecutor: OperatorExecuter) => string | null | undefined;
    before?: (data: any, opratorExecutor: OperatorExecuter) => any;
    after?: (data: any, opratorExecutor: OperatorExecuter) => void;
}
export declare enum ExecuteState {
    EXECUTE = 0,
    NO_EXECUTE = 1,
    STOP = 2
}
export type AfterCallBack = {
    onAttrInitCallBacks: AttrInitCallBack[];
    onElementInitCallBacks: ElementInitCallBack[];
    onThisComponentSetCallBacks: ComponentSet[];
};
export type ReturnContainer = {
    raws: RawSet[];
    fag: DocumentFragment;
};
export type ElementSource = {
    element: Element;
    attrs: Attrs;
    attr?: string | null;
    attrName?: string | undefined;
};
export type Source = {
    config: Config;
    operatorAround?: OperatorAround;
    obj: any;
};
export declare abstract class OperatorExecuter<T = any> {
    rawSet: RawSet;
    render: Render;
    returnContainer: ReturnContainer;
    elementSource: ElementSource;
    source: Source;
    afterCallBack: AfterCallBack;
    startingExecute: boolean;
    constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack, startingExecute?: boolean);
    start(): Promise<ExecuteState>;
    abstract execute(value: T): Promise<ExecuteState>;
}
//# sourceMappingURL=OperatorExecuter.d.ts.map