import { AbilityOptions, AbilityOptionsOf, AbilityTuple, PureAbility, RawRuleFrom, RawRuleOf } from '@casl/ability';
export declare function createAbilityFactory<TModelName extends string, TPrismaQuery extends Record<string, any>>(): {
    <T extends PureAbility<any, TPrismaQuery>>(rules?: RawRuleOf<T>[], options?: AbilityOptionsOf<T>): T;
    <A extends AbilityTuple = [string, TModelName], C extends TPrismaQuery = TPrismaQuery>(rules?: RawRuleFrom<A, C>[], options?: AbilityOptions<A, C>): PureAbility<A, C>;
};
