export type DatabaseResult = T | PromiseLike; export type Connection = { id: string; namespace: string; providerId: string; configuration: Record; oauthIssuer: string | null; oauthClientId: string | null; oauthClientSecret: string | null; secret: string | null; refreshToken: string | null; tokenType: string; requestedScopes: string[]; scopes: string[]; expiresAt: Date | null; metadata: Record; externalAccountId: string | null; externalAccountLabel: string | null; createdAt: Date; updatedAt: Date; }; export type OAuthState = { id: string; namespace: string; providerId: string; codeVerifier: string | null; redirectUri: string; returnTo: string | null; scopes: string[]; issuer: string | null; status: string; errorStatus: number | null; errorCode: string | null; errorMessage: string | null; completedAt: Date | null; createdAt: Date; expiresAt: Date; }; export type BrokerAccessToken = { name: string; tokenIdHash: string; scopes: string[]; createdAt: Date; expiresAt: Date; }; export type NewOAuthState = Pick & Partial>; export type OAuthStateUpdate = Partial>; export type NewConnection = Pick & Partial>; export type ConnectionUpdate = Partial>; export type ConnectionSummary = Pick; export type ConnectionFilter = { providerId?: string; namespace?: string; resourceScopes?: string[]; }; export type NewBrokerAccessToken = Pick; /** Persistence contract shared by Postgres, PGlite, and Durable Objects. */ export interface Database { createOAuthState(input: NewOAuthState): DatabaseResult; supersedeOAuthStates(namespace: string, providerId: string): DatabaseResult; claimOAuthState(ids: readonly string[], providerId: string): DatabaseResult; getOAuthState(ids: readonly string[], providerId: string): DatabaseResult; updateOAuthState(id: string, update: OAuthStateUpdate): DatabaseResult; purgeExpiredOAuthStates(before: Date): DatabaseResult; getConnection(namespace: string, providerId: string): DatabaseResult; putConnection(input: NewConnection): DatabaseResult; updateConnection(id: string, update: ConnectionUpdate): DatabaseResult; listConnections(filter?: ConnectionFilter): DatabaseResult; deleteConnection(id: string): DatabaseResult; getValidBrokerAccessToken(name: string, tokenIdHash: string, now: Date): DatabaseResult; purgeExpiredBrokerAccessTokens(before: Date): DatabaseResult; createBrokerAccessToken(input: NewBrokerAccessToken): DatabaseResult; listBrokerAccessTokenNames(): DatabaseResult; deleteBrokerAccessToken(name: string): DatabaseResult; } //# sourceMappingURL=types.d.ts.map