export type DevicePairingPendingRequest = { requestId: string; deviceId: string; publicKey: string; displayName?: string; platform?: string; deviceFamily?: string; clientId?: string; clientMode?: string; role?: string; roles?: string[]; scopes?: string[]; remoteIp?: string; silent?: boolean; isRepair?: boolean; ts: number; }; export type DeviceAuthToken = { token: string; role: string; scopes: string[]; createdAtMs: number; rotatedAtMs?: number; revokedAtMs?: number; lastUsedAtMs?: number; }; export type DeviceAuthTokenSummary = { role: string; scopes: string[]; createdAtMs: number; rotatedAtMs?: number; revokedAtMs?: number; lastUsedAtMs?: number; }; export type RotateDeviceTokenDenyReason = "unknown-device-or-role" | "missing-approved-scope-baseline" | "scope-outside-approved-baseline"; export type RotateDeviceTokenResult = { ok: true; entry: DeviceAuthToken; } | { ok: false; reason: RotateDeviceTokenDenyReason; }; export type PairedDevice = { deviceId: string; publicKey: string; displayName?: string; platform?: string; deviceFamily?: string; clientId?: string; clientMode?: string; role?: string; roles?: string[]; scopes?: string[]; approvedScopes?: string[]; remoteIp?: string; tokens?: Record; createdAtMs: number; approvedAtMs: number; }; export type DevicePairingList = { pending: DevicePairingPendingRequest[]; paired: PairedDevice[]; }; export type ApproveDevicePairingResult = { status: "approved"; requestId: string; device: PairedDevice; } | { status: "forbidden"; missingScope: string; } | null; export declare function listEffectivePairedDeviceRoles(device: Pick): string[]; export declare function hasEffectivePairedDeviceRole(device: Pick, role: string): boolean; export declare function listDevicePairing(baseDir?: string): Promise; export declare function getPairedDevice(deviceId: string, baseDir?: string): Promise; export declare function getPendingDevicePairing(requestId: string, baseDir?: string): Promise; export declare function requestDevicePairing(req: Omit, baseDir?: string): Promise<{ status: "pending"; request: DevicePairingPendingRequest; created: boolean; }>; export declare function approveDevicePairing(requestId: string, baseDir?: string): Promise; export declare function approveDevicePairing(requestId: string, options: { callerScopes?: readonly string[]; }, baseDir?: string): Promise; export declare function rejectDevicePairing(requestId: string, baseDir?: string): Promise<{ requestId: string; deviceId: string; } | null>; export declare function removePairedDevice(deviceId: string, baseDir?: string): Promise<{ deviceId: string; } | null>; export declare function updatePairedDeviceMetadata(deviceId: string, patch: Partial>, baseDir?: string): Promise; export declare function summarizeDeviceTokens(tokens: Record | undefined): DeviceAuthTokenSummary[] | undefined; export declare function verifyDeviceToken(params: { deviceId: string; token: string; role: string; scopes: string[]; baseDir?: string; }): Promise<{ ok: boolean; reason?: string; }>; export declare function ensureDeviceToken(params: { deviceId: string; role: string; scopes: string[]; baseDir?: string; }): Promise; export declare function rotateDeviceToken(params: { deviceId: string; role: string; scopes?: string[]; baseDir?: string; }): Promise; export declare function revokeDeviceToken(params: { deviceId: string; role: string; baseDir?: string; }): Promise; export declare function clearDevicePairing(deviceId: string, baseDir?: string): Promise;