import React from 'react';
import { DefaultCustomUI } from '../../../types';
declare type UIProviderProps = {
    children: React.ReactNode;
    displayNavbar: boolean;
    displaySidebar: boolean;
    customData?: DefaultCustomUI;
};
declare type ViewType = {
    id: string;
    props: any;
};
declare type UIStateContextType = {
    displayNavbar: boolean;
    displaySidebar: boolean;
    views: ViewType[];
    custom: DefaultCustomUI;
};
declare type UIFunctionsContextType = {
    enqueueView: <T>(view: string, valueProps?: T) => void;
    dequeueView: () => void;
    closeViewById: (id: string) => void;
    openSidebar: () => void;
    closeSidebar: () => void;
    toggleSidebar: () => void;
    openNavbar: () => void;
    closeNavbar: () => void;
    toggleNavbar: () => void;
    updateCustom: (payload: DefaultCustomUI) => void;
};
export declare function UIProvider({ children, displayNavbar, displaySidebar, customData, }: UIProviderProps): JSX.Element;
export declare function useUIState(): UIStateContextType;
export declare function useUIFunctions(): UIFunctionsContextType;
export declare function useCustomUI(): [DefaultCustomUI, (state: DefaultCustomUI) => void];
export {};
