import type { ModuleConfigs, ModuleSchemas } from "../../modules";
import { type ReactNode } from "react";
import { type TSchemaActions, getSchemaActions } from "./schema/actions";
import { AppReduced } from "./utils/AppReduced";
import type { BkndAdminProps } from "../../ui/Admin";
import type { TPermission } from "../../auth/authorize/Permission";
export type BkndContext = {
    version: number;
    readonly: boolean;
    schema: ModuleSchemas;
    config: ModuleConfigs;
    permissions: TPermission[];
    hasSecrets: boolean;
    requireSecrets: () => Promise<void>;
    actions: ReturnType<typeof getSchemaActions>;
    app: AppReduced;
    options: BkndAdminProps["config"];
    fallback: boolean;
};
export type { TSchemaActions };
export declare function BkndProvider({ includeSecrets, options, children, fallback, }: {
    includeSecrets?: boolean;
    children: any;
    fallback?: React.ReactNode;
    options?: BkndAdminProps["config"];
}): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null;
export declare function useBknd({ withSecrets }?: {
    withSecrets?: boolean;
}): BkndContext;
export declare function useBkndOptions(): BkndAdminProps["config"];
export declare function SchemaEditable({ children }: {
    children: ReactNode;
}): ReactNode;
