import type { ComputedRef, Ref } from 'vue'; export interface PageEditorComponent { name: string; icon: string; group?: string; label?: string; component: (props?: Record) => any; setting?: (props?: Record) => any; nested?: boolean; settingDefault?: Record; } export interface PageEditorGroup { name: string; label: string; icon: string; children?: PageEditorComponent[]; } export interface PageEditorData { key: string; name: string; options?: Record; children?: PageEditorData[]; } export interface PageEditorSettingPage { component?: (props?: Record) => any; default?: Record; } export interface UseEditorResult { clearComponent: () => void; addComponent: (data: PageEditorComponent) => void; clearGroup: () => void; addGroup: (data: PageEditorGroup) => void; getData: (key?: string) => PageEditorData | undefined; copyData: (key: string, index: number) => void; deleteData: (key: string, index: number) => void; tree: ComputedRef; components: Ref; group: Ref; selected: Ref; value: Ref; settingPage: PageEditorSettingPage | undefined; } export interface UseEditorValue { config: Record; data: PageEditorData[]; } export declare function useEditor({ settingPage }: { settingPage?: PageEditorSettingPage; }): UseEditorResult;