import { MainStore } from '../base/MainStore';
import { ModelStore } from '../base/ModelStore';
import { ApiBuilder } from './ApiBuilder';
import type { ApiStrategyInterface } from './ApiStrategyInterface';
import type { Api } from '../type';
export interface JsonQLApiStrategyOptions {
    apiPrefix?: string;
}
export declare class JsonQLApiStrategy implements ApiStrategyInterface {
    readonly store: MainStore;
    readonly model: ModelStore;
    readonly options: JsonQLApiStrategyOptions;
    strategy: "jsonql";
    constructor(store: MainStore, model: ModelStore, options: JsonQLApiStrategyOptions);
    setOptions(options: Partial<JsonQLApiStrategyOptions>): void;
    get apiPrefix(): string;
    /** 数据源和模型相关信息 */
    get modelInfo(): {
        value: string;
        label: string;
        dsId: string;
        dsKey: string;
        dsLabel: string;
        mId: string;
        mKey: string;
        mLabel: string;
    };
    /** FROM子句，SELECT子句使用from为key，其他情况使用table为key */
    get FROMClause(): string;
    normalizeVars(defaultVars: string[], ab?: ApiBuilder): string[];
    /** 列表查询接口 */
    listApi(ab: ApiBuilder): Api;
    /** 选项类数据源接口 */
    optionsApi(ab?: ApiBuilder): Api;
    /** 自动补全联想列表接口 */
    autoCompleteApi(ab?: ApiBuilder): Api;
    extractIdParam(str?: string): string | undefined;
    /** 单条详情查询接口 */
    detailApi(ab: ApiBuilder): Api;
    /** 新增单条接口 */
    storeApi(ab?: ApiBuilder): Api;
    /** 编辑单条接口 */
    updateApi(ab?: ApiBuilder): Api;
    bulkSaveApi(ab?: ApiBuilder): Api;
    /** 快速编辑单条数据 */
    quickSaveItemApi(ab: ApiBuilder): Api;
    /** 快速编辑多条数据 */
    quickSaveApi(ab: ApiBuilder): Api;
    /** 单条删除接口 */
    deleteApi(ab: ApiBuilder): Api;
    /** 批量删除接口 */
    bulkDeleteApi(ab: ApiBuilder): Api;
    saveOrderApi(): string;
    exportApi(): Api;
    importApi(): string;
    importAsyncApi(): string;
    donwloadImportTemplateApi(): Api;
    truncatApi(): string;
}
