import { type PureAbility, type RawRuleOf } from "@casl/ability";
import { type PackRule } from "@casl/ability/extra";
import { type PropsWithChildren } from "react";
import type { AppAbilities, AppAbility } from "./appAbility.types";
export declare namespace AbilityContext {
    export const Consumer: import("react").Consumer<AppAbility>;
    interface ProviderProps {
        user?: {
            aclRules?: PackRule<RawRuleOf<AppAbility>>[];
        } | null;
    }
    export const Provider: ({ children }: PropsWithChildren<ProviderProps>) => import("react/jsx-runtime").JSX.Element;
    export const useAbility: <TAppAbilities extends AppAbilities = AppAbilities>() => PureAbility<TAppAbilities, unknown>;
    export {};
}
