import { type ActiveRecord, type ActiveRecords, type Pagination, type QueryContext, type QueryPageResult, type QueryVariables, type QueryWrapper, type RequestModelField, type RuntimeRelationField } from '@oinone/kunlun-engine';
import { RSQLCondition } from '@oinone/kunlun-shared';
import { type SelectItem, SelectMode } from '@oinone/kunlun-vue-ui-common';
import type { FormComplexFieldProps } from '../FormComplexFieldWidget';
import { BaseSelectFieldWidget } from './BaseSelectFieldWidget';
export declare abstract class SelectFieldWidget<Option extends ActiveRecord = ActiveRecord, Value extends ActiveRecords = ActiveRecords, Field extends RuntimeRelationField = RuntimeRelationField, Props extends FormComplexFieldProps<Field> = FormComplexFieldProps<Field>> extends BaseSelectFieldWidget<Value, Field, Props> {
    protected mode: SelectMode;
    initialize(props: Props): this;
    protected get bizStyle(): string | undefined;
    protected isNeedReloadOptions: boolean;
    protected initLoad(): Promise<void>;
    protected $$initLoad(condition?: RSQLCondition): Promise<void>;
    protected loadMore(): Promise<void>;
    protected onPaginationChange(current: number, pageSize: number): Promise<void>;
    protected searchValue: string | undefined;
    protected onUpdateSearchValue(val: string | undefined): void;
    protected search(keyword: string): Promise<void>;
    protected get selected(): SelectItem<Option> | SelectItem<Option>[] | null | undefined;
    protected get initSelectedOptions(): SelectItem[];
    protected options: SelectItem<Option>[] | undefined;
    protected fetchData(condition?: RSQLCondition): Promise<Option[]>;
    protected $$fetchData(condition?: RSQLCondition): Promise<Option[]>;
    protected queryPage<T extends Record<string, unknown>>(requestFields: RequestModelField[], queryWrapper: QueryWrapper, pagination: Pagination, variables: QueryVariables, context: QueryContext): Promise<QueryPageResult<T>>;
}
