import { ActiveRecords, RuntimeModel, RuntimeRelationField, SubmitCacheManager } from '@oinone/kunlun-engine';
import { CallChaining, ReturnPromise } from '@oinone/kunlun-shared';
import { BaseFieldProps } from '../../token';
import { FormFieldWidget } from '../FormFieldWidget';
export declare type FormComplexFieldProps<Field extends RuntimeRelationField = RuntimeRelationField> = BaseFieldProps<Field>;
export declare abstract class FormComplexFieldWidget<Value extends ActiveRecords = ActiveRecords, Field extends RuntimeRelationField = RuntimeRelationField, Props extends FormComplexFieldProps<Field> = FormComplexFieldProps<Field>> extends FormFieldWidget<Value, Field, Props> {
    /**
     * 是否是数据源提供者
     * @protected
     */
    protected isDataSourceProvider: boolean;
    protected get submitCache(): SubmitCacheManager | undefined;
    protected get referencesModel(): RuntimeModel | undefined;
    protected parentMountedCallChaining: CallChaining | undefined;
    protected currentMountedCallChaining: CallChaining | undefined;
    /**
     * 挂载时
     * @protected
     */
    protected get mountedCallChaining(): CallChaining | undefined;
    protected parentRefreshCallChaining: CallChaining<boolean> | undefined;
    protected currentRefreshCallChaining: CallChaining<boolean> | undefined;
    /**
     * 刷新时
     * @protected
     */
    protected get refreshCallChaining(): CallChaining<boolean> | undefined;
    protected get filter(): string | undefined;
    protected get domain(): string | undefined;
    initialize(props: Props): this;
    protected initSubmitCache(referencesModel: RuntimeModel): void;
    protected resolveDynamicDomain(domain: string): string;
    /**
     * 挂载时处理
     * @protected
     */
    protected abstract mountedProcess(): ReturnPromise<void>;
    /**
     * 父视图刷新时处理
     * @protected
     */
    protected refreshParentProcess(): ReturnPromise<void>;
    /**
     * 值刷新时处理
     * @protected
     */
    protected refreshValueProcess(): ReturnPromise<void>;
    protected subscribeProcess(): void;
    protected $$beforeMount(): void;
    protected $$mounted(): void;
    protected $$unmounted(): void;
}
