import { AgentAuthClient } from './agent-auth-client';
export type AgentApprovalStrength = "none" | "session" | "webauthn";
export type AgentGrantStatus = "active" | "pending" | "denied" | "revoked";
export type AgentCapabilityGrant = {
    capability: string;
    description?: string;
    status: AgentGrantStatus;
    approvalStrength: AgentApprovalStrength;
    reason?: string;
    constraints?: Record<string, unknown>;
    expiresAt?: Date;
};
export type AgentAuthorization = {
    id: string;
    name: string;
    status: string;
    mode: "delegated" | "autonomous";
    hostId: string;
    hostName?: string;
    grants: AgentCapabilityGrant[];
    createdAt: Date;
    lastUsedAt?: Date;
    expiresAt?: Date;
};
export type AgentApprovalRequest = {
    agentId: string;
    approvalId?: string;
    userCode?: string;
};
export type AgentApproval = AgentAuthorization & {
    requestedCapabilities: AgentCapabilityGrant[];
};
export type AgentApprovalDecision = AgentApprovalRequest & {
    capabilities?: string[];
    ttl?: number;
    reason?: string;
};
export type AgentAuthPasskeyCeremony = (options: Record<string, unknown>) => Promise<Record<string, unknown>>;
export interface AgentAuthAdapter {
    getApproval(request: AgentApprovalRequest, signal?: AbortSignal): Promise<AgentApproval>;
    approve(decision: AgentApprovalDecision): Promise<void>;
    deny(decision: AgentApprovalDecision): Promise<void>;
    listAgents(signal?: AbortSignal): Promise<AgentAuthorization[]>;
    revoke(agentId: string, capabilities: string[]): Promise<void>;
}
export type AgentAuthClientAdapterOptions = {
    authenticateWithPasskey?: AgentAuthPasskeyCeremony;
};
/** Build BAUI's approval and grant-management adapter from Agent Auth's native client. */
export declare function createAgentAuthClientAdapter(authClient: AgentAuthClient, options?: AgentAuthClientAdapterOptions): AgentAuthAdapter;
