import { IStyledComponent } from 'styled-components';
import { List } from '../../../ui/index.js';
import { INotification, Menu, UserAdmin } from '../../../system/index.js';
import { IMenuSettings } from '../menu/index.js';
export interface InfraInjectionContextType {
    InjectedRemotes?: {
        [key: string]: {
            getRole?: () => Promise<{
                role: string;
                user?: any;
            }>;
            loadUserAdmin?: () => Promise<UserAdmin>;
        };
    } & {
        menu?: {
            menu?: List<Menu>;
            fetcher?: () => List<Menu>;
        };
        notifications?: {
            notification?: INotification[];
        };
    };
    Configurations?: {
        codieDynamic?: {
            favorite?: boolean;
        };
        favorite?: boolean;
        logoLogin?: string;
        backgroundLoginLeft?: string;
        table?: {
            accessControl?: {
                read?: string[];
                create?: string[];
                update?: string[];
                delete?: string[];
            };
        };
        chat?: boolean;
        menu?: IMenuSettings;
        notification?: {
            icon?: React.SVGProps<SVGSVGElement>;
            CustomComponent?: (props: INotification) => React.ReactNode;
            enable?: boolean;
        };
        poweredBy?: {
            name: string;
            link: string;
        };
        styles?: {
            Button?: IStyledComponent<'web', any>;
        };
    };
}
