import { type ActiveRecord, type ActiveRecords, type QueryContext, type QueryVariables, type RuntimeStringField, SubmitValue } from '@oinone/kunlun-engine';
import { type Entity } from '@oinone/kunlun-meta';
import { Condition } from '@oinone/kunlun-request';
import { CallChaining } from '@oinone/kunlun-shared';
import { type WidgetSubjection } from '@oinone/kunlun-vue-widget';
import { ActionWidget } from '../component';
/**
 * 草稿动作
 */
export declare class SaveDraftAction extends ActionWidget {
    protected mountedCallChaining: CallChaining | undefined;
    protected reloadFormData$: WidgetSubjection<boolean>;
    protected isLoadDraft: boolean;
    get loadFunctionFun(): string | undefined;
    protected setDraftCode(draftCode: string): void;
    protected getDraftCode(): string | undefined;
    /**
     * 草稿数据回填
     */
    protected useDraftValue(activeRecords: ActiveRecord[]): void;
    /**
     * 如果存在草稿数据，则提示用户是否使用草稿数据
     */
    protected draftProcess(resolve: Function, reject: Function): Promise<void>;
    protected $$draftProcess(): Promise<void>;
    protected generatorDraftCodeField(): RuntimeStringField;
    protected submitDraftCode(result: SubmitValue): void;
    protected $$beforeMount(): Promise<void>;
    /**
     * 查询草稿
     */
    protected queryDraft(): Promise<ActiveRecord>;
    /**
     * 创建草稿
     */
    protected createDraft(): Promise<Entity | undefined>;
    /**
     * 修改草稿
     */
    protected updateDraft(): Promise<Entity | undefined>;
    /**
     * 删除草稿
     */
    protected deleteDraft(): Promise<Entity | undefined>;
    /**
     * 执行草稿相关函数
     * @param {string} fun 函数名
     * @param {string[]} args 参数
     */
    protected executeDraftOperator(fun: string, ...args: unknown[]): Promise<Entity | undefined>;
    /**
     * 点击动作保存草稿
     */
    protected clickAction(...args: unknown[]): Promise<boolean>;
    generatorQueryVariables(variables?: QueryVariables): QueryVariables;
    generatorQueryContext(context?: QueryContext): QueryContext;
    get useConstruct(): boolean;
    protected get isInlineScene(): boolean | undefined;
    queryData(variables: QueryVariables, context: QueryContext): Promise<ActiveRecord>;
    queryConstruct(queryData: ActiveRecords | undefined, variables: QueryVariables, context: QueryContext): Promise<ActiveRecord>;
    /**
     * 页面查询函数
     * @param queryData
     * @param variables
     * @param context
     */
    queryOne(queryData: ActiveRecord, variables: QueryVariables, context: QueryContext): Promise<ActiveRecord>;
    /**
     * 页面条件查询函数
     * @param condition
     * @param variables
     * @param context
     */
    queryOneByWrapper(condition: Condition, variables: QueryVariables, context: QueryContext): Promise<ActiveRecord>;
}
