import type { DynamicSetter, FieldConfig, FieldExtraProps, SetterType } from '../component-meta';
import type { SettingTopEntry } from './setting-top-entry';
import { SettingPropEntry } from './setting-prop-entry';
export interface SetValueOptions {
    disableMutator?: boolean;
    type?: PropValueChangedType;
    fromSetHotValue?: boolean;
}
export declare enum PropValueChangedType {
    /**
     * normal set value
     */
    SET_VALUE = "SET_VALUE",
    /**
     * value changed caused by sub-prop value change
     */
    SUB_VALUE_CHANGE = "SUB_VALUE_CHANGE"
}
export declare class SettingField extends SettingPropEntry {
    private settingFieldCollector?;
    readonly isSettingField = true;
    readonly isRequired: boolean;
    private _config;
    private hotValue;
    parent: SettingTopEntry | SettingField;
    extraProps: FieldExtraProps;
    private _title?;
    get title(): import("../..").PropKey | undefined;
    private _setter?;
    private accessor _expanded;
    private _items;
    constructor(parent: SettingTopEntry | SettingField, config: FieldConfig, settingFieldCollector?: ((name: string, field: SettingField) => void) | undefined);
    get setter(): SetterType | null;
    get expanded(): boolean;
    setExpanded(value: boolean): void;
    get items(): SettingField[];
    get config(): FieldConfig;
    private initItems;
    private disposeItems;
    createField(config: FieldConfig): SettingField;
    purge(): void;
    getConfig<K extends keyof FieldConfig>(configName?: K): FieldConfig[K] | FieldConfig;
    getItems(filter?: (item: SettingField) => boolean): SettingField[];
    setValue(val: any, isHotValue?: boolean, extraOptions?: SetValueOptions): void;
    getHotValue(): any;
    setHotValue(data: any, options?: SetValueOptions): void;
}
export declare const isSettingField: (obj: any) => obj is SettingField;
export declare const isDynamicSetter: (obj: any) => obj is DynamicSetter;
