declare abstract class Policy { constructor(); view(_user?: unknown, _resource?: unknown): boolean; create(_user?: unknown): boolean; update(_user?: unknown, _resource?: unknown): boolean; delete(_user?: unknown, _resource?: unknown): boolean; } declare class PolicyGate { constructor(); private readonly policies; register(resource: string, policy: Policy): void; allows(resource: string, action: string, user?: unknown, model?: unknown): boolean; authorize(resource: string, action: string, user?: unknown, model?: unknown): void; } export { Policy, PolicyGate };