import type { ConnectionId, CredentialReferenceId, ProjectId, ProviderId } from "./ids.js";
import type { Capability } from "./security.js";
export type ConnectionStatus = "connected" | "needs-resource-selection" | "needs-permission" | "needs-reauth" | "revoked" | "degraded";
export interface CredentialReference {
    readonly id: CredentialReferenceId;
    readonly secretStoreKey: string;
    readonly secretVersion?: string;
}
export interface Connection {
    readonly id: ConnectionId;
    readonly providerId: ProviderId;
    readonly credentialReferenceId: CredentialReferenceId;
    readonly status: ConnectionStatus;
    readonly accountIdentity?: string;
    readonly capabilities: readonly Capability[];
    readonly resources: readonly string[];
}
export interface ProjectConnectionBinding {
    readonly projectId: ProjectId;
    readonly connectionId: ConnectionId;
    readonly capabilities: readonly Capability[];
    readonly resources: readonly string[];
    readonly revision: number;
}
export declare function assertConnectionBindingNarrows(connection: Connection, binding: ProjectConnectionBinding): void;
//# sourceMappingURL=connections.d.ts.map