import { BreadcrumbItem } from '@components/breadcrumbs';
import { TAdminCustomEntity, TAdminCustomField, TPermission, TRole } from '@cromwell/core';
import React from 'react';
import { TAdminCmsSettingsType } from '../types';
export declare const useAdminSettingsContext: () => {
    settings: import("@cromwell/core").TCmsSettings;
    adminSettings: import("@cromwell/core").TCmsSettings;
    getAdminCmsSettings: () => Promise<import("@cromwell/core").TCmsSettings>;
    saveStoreSettings: (newData: Partial<TAdminCmsSettingsType>) => Promise<boolean>;
    saveAdminCmsSettings: (newData: Partial<TAdminCmsSettingsType>) => Promise<boolean>;
    saveCodeSettings: (newData: Partial<TAdminCmsSettingsType>) => Promise<boolean>;
    addCustomEntityToDB: (entity: TAdminCustomEntity) => Promise<boolean>;
    saveCustomEntity: (originalEntityType: string, entity: TAdminCustomEntity, customFields: TAdminCustomField[]) => Promise<boolean>;
    saveDefaultEntity: (entityType: string, customFields: TAdminCustomField[]) => Promise<boolean>;
    getRoles: () => Promise<void>;
    addRole: (role: Partial<TRole>) => Promise<boolean>;
    roles: TRole[];
    getPermissions: () => Promise<void>;
    permissions: TPermission[];
    findRole: (id: number) => TRole;
    saveRole: (role: TRole) => Promise<TRole>;
    breadcrumbs: BreadcrumbItem[];
    setBreadcrumbs: React.Dispatch<React.SetStateAction<BreadcrumbItem[]>>;
    saveDisabled: boolean;
    setSaveDisabled: React.Dispatch<React.SetStateAction<boolean>>;
    saveVisible: boolean;
    setSaveVisible: React.Dispatch<React.SetStateAction<boolean>>;
    onSave: () => void;
    saving: boolean;
    setOnSave: (value: any) => void;
};
export declare type SettingsPageInfo = {
    breadcrumbs?: BreadcrumbItem[];
    saveVisible?: boolean;
    saveDisabled?: boolean;
    onSave?: () => void;
};
export declare const useAdminSettings: ({ breadcrumbs, saveVisible, onSave, saveDisabled }?: SettingsPageInfo) => {
    settings: import("@cromwell/core").TCmsSettings;
    adminSettings: import("@cromwell/core").TCmsSettings;
    getAdminCmsSettings: () => Promise<import("@cromwell/core").TCmsSettings>;
    saveStoreSettings: (newData: Partial<TAdminCmsSettingsType>) => Promise<boolean>;
    saveAdminCmsSettings: (newData: Partial<TAdminCmsSettingsType>) => Promise<boolean>;
    saveCodeSettings: (newData: Partial<TAdminCmsSettingsType>) => Promise<boolean>;
    addCustomEntityToDB: (entity: TAdminCustomEntity) => Promise<boolean>;
    saveCustomEntity: (originalEntityType: string, entity: TAdminCustomEntity, customFields: TAdminCustomField[]) => Promise<boolean>;
    saveDefaultEntity: (entityType: string, customFields: TAdminCustomField[]) => Promise<boolean>;
    getRoles: () => Promise<void>;
    addRole: (role: Partial<TRole>) => Promise<boolean>;
    roles: TRole[];
    getPermissions: () => Promise<void>;
    permissions: TPermission[];
    findRole: (id: number) => TRole;
    saveRole: (role: TRole) => Promise<TRole>;
    breadcrumbs: BreadcrumbItem[];
    setBreadcrumbs: React.Dispatch<React.SetStateAction<BreadcrumbItem[]>>;
    saveDisabled: boolean;
    setSaveDisabled: React.Dispatch<React.SetStateAction<boolean>>;
    saveVisible: boolean;
    setSaveVisible: React.Dispatch<React.SetStateAction<boolean>>;
    onSave: () => void;
    saving: boolean;
    setOnSave: (value: any) => void;
};
export declare const AdminSettingsContextProvider: ({ children }: {
    children: any;
}) => JSX.Element;
