import type { ReactElement, ReactNode } from "react"; import type { Action, PermissionProvider as IPermissionProvider, PermissionContext, Resource } from "./types"; interface PermissionContextValue { provider: IPermissionProvider; context: PermissionContext; } export interface PermissionProviderProps { children: ReactNode; provider: IPermissionProvider; context: PermissionContext; } export declare function PermissionProvider({ children, provider, context, }: PermissionProviderProps): ReactElement; export declare function usePermissionContext(): PermissionContextValue; export interface UsePermissionOptions { fallback?: boolean; } export declare function usePermission(action: Action, resource: Resource, subject?: unknown): boolean; export interface CanProps { action: Action; resource: Resource; subject?: unknown; children: ReactNode; fallback?: ReactNode; } export declare function Can({ action, resource, subject, children, fallback, }: CanProps): ReactElement | null; export interface CannotProps { action: Action; resource: Resource; subject?: unknown; children: ReactNode; fallback?: ReactNode; } export declare function Cannot({ action, resource, subject, children, fallback, }: CannotProps): ReactElement | null; export {}; //# sourceMappingURL=react.d.ts.map