import { type FailureKind, type InvokeContext, type ProviderDefinition } from './index'; export { githubAppConfigSchema, githubAppCredentialSchema, githubAppConfigurationFields, githubAppCredentialFields } from './git-schema'; /** * GitHub is one provider authority with two deliberately separate service * bindings. OAuth Server receives only user-authorization methods; Git Connect * receives only installation/repository methods. Both resolve the same * provider instance and therefore the same Vault credential exactly once. */ export interface GitHubUserAuthorizationRequest { intent: 'signin' | 'signup' | 'invite' | 'recover' | 'session'; returnTo: string; state: string; codeChallenge: string; } export interface GitHubUserAuthorization { url: string; expiresAtTs: number; } export interface GitHubUserAuthorizationCompletion { code: string; state: string; codeVerifier: string; } export interface GitHubVerifiedIdentity { providerUserId: string; email: string; displayName?: string; } export interface GitHubUserGrant { accessToken: string; expiresAtTs?: number; refreshToken?: string; refreshTokenExpiresAtTs?: number; } export interface GitHubUserGrantRefreshRequest { refreshToken: string; } export interface GitHubUserGrantRevokeRequest { accessToken: string; } export interface GitInstallation { id: string; accountId: string; accountLabel: string; accountKind: 'user' | 'organization'; } export interface GitRepository { id: string; fullName: string; private: boolean; defaultBranch: string; cloneUrl: string; } export interface GitBranch { name: string; protected?: boolean; } export interface GitCloneCredential { username: string; token: string; expiresAtTs: number; } export interface GitInstallationStartRequest { returnTo: string; state: string; } export interface GitInstallationStart { url: string; expiresAtTs: number; } export interface GitInstallationCompletionRequest { installationId: string; setupAction?: 'install' | 'update'; state: string; } export interface GitInstallationRequest { installationId: string; } export interface GitRepositoryRequest { installationId: string; cursor?: string; } export interface GitBranchRequest { installationId: string; repository: string; cursor?: string; } export interface GitCloneCredentialRequest { installationId: string; repository: string; } export interface GitWebhookVerificationRequest { rawBody: Uint8Array; signature: string; deliveryId: string; event: string; } export interface GitWebhookEvent { deliveryId: string; event: string; payload: unknown; } export declare const oauthServerService: import("./index").ServiceDefinition<"oauth-server", { beginUserAuthorization: import("./index").ServiceMethodContract; completeUserAuthorization: import("./index").ServiceMethodContract; readVerifiedIdentity: import("./index").ServiceMethodContract; refreshUserGrant: import("./index").ServiceMethodContract; revokeUserGrant: import("./index").ServiceMethodContract; }>; export declare const gitConnectService: import("./index").ServiceDefinition<"git-connect", { beginInstallation: import("./index").ServiceMethodContract; completeInstallation: import("./index").ServiceMethodContract; listInstallations: import("./index").ServiceMethodContract, readonly GitInstallation[]>; listRepositories: import("./index").ServiceMethodContract; listBranches: import("./index").ServiceMethodContract; mintCloneCredential: import("./index").ServiceMethodContract; verifyWebhook: import("./index").ServiceMethodContract; disconnectInstallation: import("./index").ServiceMethodContract; }>; export interface GitHubProviderAdapter { beginUserAuthorization(context: InvokeContext, args: GitHubUserAuthorizationRequest): Promise; completeUserAuthorization(context: InvokeContext, args: GitHubUserAuthorizationCompletion): Promise; readVerifiedIdentity(context: InvokeContext, args: GitHubUserGrant): Promise; refreshUserGrant(context: InvokeContext, args: GitHubUserGrantRefreshRequest): Promise; revokeUserGrant(context: InvokeContext, args: GitHubUserGrantRevokeRequest): Promise; beginInstallation(context: InvokeContext, args: GitInstallationStartRequest): Promise; completeInstallation(context: InvokeContext, args: GitInstallationCompletionRequest): Promise; listInstallations(context: InvokeContext, args: Record): Promise; listRepositories(context: InvokeContext, args: GitRepositoryRequest): Promise; listBranches(context: InvokeContext, args: GitBranchRequest): Promise; mintCloneCredential(context: InvokeContext, args: GitCloneCredentialRequest): Promise; verifyWebhook(context: InvokeContext, args: GitWebhookVerificationRequest): Promise; disconnectInstallation(context: InvokeContext, args: GitInstallationRequest): Promise; } /** Define the single GitHub App provider. No OAuth-App compatibility identity exists. */ export declare function defineGitHubProvider(args: { version: string; adapter: GitHubProviderAdapter; classify?: (error: unknown) => FailureKind; }): ProviderDefinition;