import { Theme } from '@mui/material';
import { default as React } from 'react';
import { MakeRequired } from '../../helpers';
import { ThemeMode } from '../../hooks/use-theme-mode';
import { Language, SomeTranslations } from '../../types';
import { CustomMesalvoTheme } from './MesalvoTheme';
/**
 * @name ThemeProps
 * @description Interface to define the props of the MesalvoProvider theme component
 * @property {ThemeMode} mode - The theme mode to be used
 * @property {CustomMesalvoTheme} theme - The custom theme to be used
 */
export interface ThemeProps {
    mode?: ThemeMode;
    theme?: CustomMesalvoTheme;
}
/**
 * @name ProviderProps
 * @description Interface to define the props of the MesalvoProvider component
 * @property {React.ReactNode} children - The children to be rendered
 * @property {ThemeProps} theme - The theme to be used

 */
export interface ProviderProps {
    children: React.ReactNode;
    theme?: ThemeProps;
    keys?: {
        language: string;
    };
    defaultLanguage?: Language;
    allLanguages?: Language[];
    translations?: SomeTranslations;
    isDebug?: boolean;
    toggleDebug?: () => void;
    muiTheme?: Partial<Theme> | ((outerTheme: Theme) => Theme);
    app: {
        name: string;
        version: string;
        description: string;
    };
    logging?: {
        enabled?: boolean;
        key?: string;
        strategy?: "localStorage";
    };
}
export interface CortexContextProps extends MakeRequired<Pick<ProviderProps, "defaultLanguage" | "translations" | "keys" | "allLanguages" | "app" | "logging">> {
}
export declare const CortexContext: React.Context<CortexContextProps | undefined>;
/**
 * @name MesalvoProvider
 * @description The MesalvoProvider component is a wrapper component that provides the theme to all the components in the Mesalvo library.
 * @param {ProviderProps} { children, theme } - The children to be rendered and the theme to be used
 * @returns {React.ReactElement} The MesalvoProvider component

 */
export declare const MesalvoProvider: ({ children, app, theme, keys, defaultLanguage, logging, isDebug, toggleDebug, allLanguages, translations, }: ProviderProps) => React.ReactElement;
//# sourceMappingURL=MesalvoProvider.d.ts.map