import { GuidValue, ILayoutCanvasExpansionItemInstance, WebComponentDefinition } from "@omnia/fx-models";
import { SpfxWebPartSettingMsg } from "../messagebus/internal/InternalTopics";
import { OmniaWPContainerSettingsModel } from "../models";
export interface OmniaWPState {
    webComponents: WebComponentDefinition[];
    displaySelectComponents: boolean;
    displaySettingsComponentForm: boolean;
    selectedComponentTag: string;
    selectedSettingsComponentTag: string;
    componentTitle: string;
    settingsComponentDialog: {
        visible: boolean;
    };
    isEditMode: boolean;
    activeTab: number;
    layoutItems: ILayoutCanvasExpansionItemInstance[];
    customCssClases: string;
    customCssStyle: string;
}
export default function useOmniaWP(webpartid: string): {
    state: {
        webComponents: {
            title: string;
            description?: string;
            icon?: {
                iconType: import("@omnia/fx-models").IconTypes;
                role?: string;
            };
            featureDependencyIds?: {
                toString: () => string;
            }[];
            requiresLicense?: {
                toString: () => string;
            }[];
            requiredBackendRuntime?: import("@omnia/fx-models").OmniaBackendRuntimes[];
            requiredClientRuntime?: import("@omnia/fx-models").OmniaClientRuntimes[];
        }[];
        displaySelectComponents: boolean;
        displaySettingsComponentForm: boolean;
        selectedComponentTag: string;
        selectedSettingsComponentTag: string;
        componentTitle: string;
        settingsComponentDialog: {
            visible: boolean;
        };
        isEditMode: boolean;
        activeTab: number;
        layoutItems: {
            slots: {
                header: () => JSX.Element;
                content: () => JSX.Element | JSX.Element[];
            };
            definitionId: {
                toString: () => string;
            };
        }[];
        customCssClases: string;
        customCssStyle: string;
    };
    populateComponentTitle: (componentManifestId: GuidValue, elementTag?: string) => void;
    subscribeSpfxWebPartSettingTopic: (callback: (msg: SpfxWebPartSettingMsg) => void) => void;
    subcribeMessage: (msg: SpfxWebPartSettingMsg, settings: OmniaWPContainerSettingsModel) => void;
    saveComponentSettings: (value: any, settings: OmniaWPContainerSettingsModel) => Promise<void>;
    onDisplayModeChanged: (mode: any) => void;
    updateAdvanceCss: (settings: OmniaWPContainerSettingsModel) => void;
    renderDisplayComponent: (manifestid?: GuidValue) => VueTsxSupport.JSX.Element;
    renderSettingsComponent: (settings: OmniaWPContainerSettingsModel) => VueTsxSupport.JSX.Element;
    init: (settings: OmniaWPContainerSettingsModel) => void;
};
