import { z } from 'zod'; import { Authority, State } from './types.gen'; import { bounds } from '../spatial'; export declare const ABSOLUTE_AUTHORITY: Authority; export declare const ZERO_AUTHORITY: Authority; export declare const AUTHORITY_BOUNDS: bounds.Bounds; export declare const filterTransfersByChannelKey: (...resources: z.infer[]) => (transfers: Transfer[]) => Transfer[]; interface Release { from: State; to?: null; } export declare const releaseZ: (resource: R) => z.ZodObject<{ from: z.ZodObject<{ subject: z.ZodObject<{ key: z.ZodString; name: z.ZodString; group: z.ZodOptional; }, z.core.$strip>; resource: R; authority: z.ZodInt; }, z.core.$strip>; to: z.ZodOptional; }, z.core.$strip>; interface Acquire { from?: null; to: State; } export declare const acquireZ: (resource: R) => z.ZodObject<{ from: z.ZodOptional; to: z.ZodObject<{ subject: z.ZodObject<{ key: z.ZodString; name: z.ZodString; group: z.ZodOptional; }, z.core.$strip>; resource: R; authority: z.ZodInt; }, z.core.$strip>; }, z.core.$strip>; export type Transfer = { from: State; to: State; } | Release | Acquire; export declare const transferZ: (resource: R) => z.ZodUnion; }, z.core.$strip>; resource: R; authority: z.ZodInt; }, z.core.$strip>; to: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ from: z.ZodOptional; to: z.ZodObject<{ subject: z.ZodObject<{ key: z.ZodString; name: z.ZodString; group: z.ZodOptional; }, z.core.$strip>; resource: R; authority: z.ZodInt; }, z.core.$strip>; }, z.core.$strip>, z.ZodObject<{ from: z.ZodObject<{ subject: z.ZodObject<{ key: z.ZodString; name: z.ZodString; group: z.ZodOptional; }, z.core.$strip>; resource: R; authority: z.ZodInt; }, z.core.$strip>; to: z.ZodObject<{ subject: z.ZodObject<{ key: z.ZodString; name: z.ZodString; group: z.ZodOptional; }, z.core.$strip>; resource: R; authority: z.ZodInt; }, z.core.$strip>; }, z.core.$strip>]>; export {}; //# sourceMappingURL=control.d.ts.map