import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import { WccDashboard } from './wcc-dashboard.js';
import type { TTemplateFactory } from './wcctools.helpers.js';
import './wcc-record-button.js';
import './wcc-recording-panel.js';
export type TPropertyType = 'String' | 'Number' | 'Boolean' | 'Object' | 'Enum' | 'Array';
export type TEnvironment = 'native' | 'desktop' | 'tablet' | 'phablet' | 'phone';
export type TTheme = 'bright' | 'dark';
export declare const setEnvironment: (envArg: any) => void;
export declare class WccProperties extends DeesElement {
    accessor dashboardRef: WccDashboard;
    accessor selectedItem: TTemplateFactory | DeesElement;
    accessor selectedViewport: TEnvironment;
    accessor selectedTheme: TTheme;
    accessor warning: string;
    accessor isNative: boolean;
    accessor sidebarWidth: number;
    accessor propertyContent: TemplateResult[];
    accessor editingProperties: Array<{
        id: string;
        name: string;
        value: any;
        element: HTMLElement;
        editorValue: string;
        editorError: string;
    }>;
    accessor showRecordingPanel: boolean;
    accessor isRecording: boolean;
    accessor recordingDuration: number;
    accessor isHidden: boolean;
    editorHeight: number;
    render(): TemplateResult;
    private findElementRecursively;
    createProperties(): Promise<any>;
    selectTheme(themeArg: TTheme): void;
    protected updated(changedProperties: Map<string, unknown>): void;
    selectViewport(viewport: TEnvironment): void;
    private openAdvancedEditor;
    private handleEditorSave;
    private handleEditorCancel;
    private closeAllEditors;
    private toggleNative;
    private handleRecordButtonClick;
}
