import type { PrincipalId, ProjectId } from "./ids.js";
export type PrincipalKind = "human" | "agent" | "system";
export type Capability = string & {
    readonly __awpCapability: true;
};
export interface Principal {
    readonly id: PrincipalId;
    readonly kind: PrincipalKind;
    readonly capabilities: readonly Capability[];
}
export interface AuthorityContext {
    readonly principal: Principal;
    readonly projectId?: ProjectId;
    readonly capabilities: readonly Capability[];
}
export declare function capability(value: string): Capability;
export declare function authorityContext(principal: Principal, requested: readonly Capability[], projectId?: ProjectId): AuthorityContext;
//# sourceMappingURL=security.d.ts.map