import type { Database } from "bun:sqlite";
export interface ApiKeyRecord {
    id: string;
    name: string;
    prefix: string;
    permissions: string[];
    created_at: string;
    last_used_at: string | null;
    expires_at: string | null;
    revoked_at: string | null;
}
export interface CreateApiKeyInput {
    name: string;
    permissions?: string[];
    expires_at?: string | null;
}
export interface CreatedApiKey {
    key: string;
    record: ApiKeyRecord;
}
export declare function createApiKey(input: CreateApiKeyInput, db?: Database): CreatedApiKey;
export declare function listApiKeys(opts?: {
    include_revoked?: boolean;
}, db?: Database): ApiKeyRecord[];
export declare function hasActiveApiKeys(db?: Database): boolean;
export declare function verifyApiKey(key: string, db?: Database): ApiKeyRecord | null;
export declare function revokeApiKey(idOrPrefix: string, db?: Database): ApiKeyRecord | null;
//# sourceMappingURL=api-keys.d.ts.map