import type { ComponentMeta, Designer, Editor, Node, PropKey, SetterManager } from '../..';
import type { SettingEntry } from './setting-entry';
import { SettingField } from './setting-field';
export declare const generateSessionId: (nodes: Node[]) => string;
export declare class SettingTopEntry implements SettingEntry {
    readonly editor: Editor;
    readonly nodes: Node[];
    private emitter;
    private _items;
    private _componentMeta;
    private _isSame;
    private _settingFieldMap;
    readonly path: never[];
    readonly top: this;
    readonly parent: this;
    get componentMeta(): ComponentMeta | null;
    get items(): SettingField[];
    /**
     * 同样的
     */
    get isSameComponent(): boolean;
    /**
     * 一个
     */
    get isSingle(): boolean;
    get isLocked(): boolean;
    /**
     * 多个
     */
    get isMultiple(): boolean;
    readonly id: string;
    readonly first: Node;
    readonly designer: Designer | undefined;
    readonly setters: SetterManager;
    disposeFunctions: any[];
    constructor(editor: Editor, nodes: Node[]);
    private setupComponentMeta;
    private setupItems;
    private setupEvents;
    /**
     * 获取当前属性值
     */
    getValue(): import("../..").PropsMap | null;
    /**
     * 设置当前属性值
     */
    setValue(val: any): void;
    /**
     * 获取子项
     */
    get(propName: PropKey): SettingField | null;
    /**
     * 设置子级属性值
     */
    setPropValue(propName: PropKey, value: any): void;
    /**
     * 清除已设置值
     */
    clearPropValue(propName: PropKey): void;
    /**
     * 获取子级属性值
     */
    getPropValue(propName: PropKey): any;
    /**
     * 获取顶层附属属性值
     */
    getExtraPropValue(propName: string): unknown;
    /**
     * 设置顶层附属属性值
     */
    setExtraPropValue(propName: string, value: any): void;
    setProps(data: object): void;
    mergeProps(data: object): void;
    private disposeItems;
    purge(): void;
    getProp(propName: PropKey): SettingField | null;
    getNode(): Node<import("../..").NodeSchema>;
}
interface Purgeable {
    purge(): void;
}
export declare const isPurgeable: (obj: any) => obj is Purgeable;
export {};
