import * as v from '../../shared/src/valita.ts';
declare const ruleSchema: v.TupleType<[v.Type<"allow">, v.Type<import("../../zero-protocol/src/ast.ts").Condition>]>;
export type Rule = v.Infer<typeof ruleSchema>;
declare const policySchema: v.ArrayType<v.TupleType<[v.Type<"allow">, v.Type<import("../../zero-protocol/src/ast.ts").Condition>]>>;
export type Policy = v.Infer<typeof policySchema>;
declare const assetSchema: v.ObjectType<{
    select: v.Optional<["allow", import("../../zero-protocol/src/ast.ts").Condition][]>;
    insert: v.Optional<["allow", import("../../zero-protocol/src/ast.ts").Condition][]>;
    update: v.Optional<{
        preMutation?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
        postMutation?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
    }>;
    delete: v.Optional<["allow", import("../../zero-protocol/src/ast.ts").Condition][]>;
}, undefined>;
export type AssetPermissions = v.Infer<typeof assetSchema>;
export declare const permissionsConfigSchema: v.ObjectType<{
    tables: v.Type<Record<string, {
        row?: {
            select?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
            insert?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
            update?: {
                preMutation?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
                postMutation?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
            } | undefined;
            delete?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
        } | undefined;
        cell?: Record<string, {
            select?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
            insert?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
            update?: {
                preMutation?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
                postMutation?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
            } | undefined;
            delete?: ["allow", import("../../zero-protocol/src/ast.ts").Condition][] | undefined;
        }> | undefined;
    }>>;
}, undefined>;
export type TablePermissions = v.Infer<typeof permissionsConfigSchema.shape.tables>;
export type PermissionsConfig = v.Infer<typeof permissionsConfigSchema>;
export {};
//# sourceMappingURL=compiled-permissions.d.ts.map