import type { GitHubRepository, ResolvedGitHubCredentials } from "./config.js";
export type GitHubCredentialCapability = "checkout" | "publish";
export interface GitHubCredentialRequest {
    readonly capability: GitHubCredentialCapability;
    readonly repository: GitHubRepository;
}
export interface GitHubCredentialProvider {
    resolve(request: GitHubCredentialRequest): Promise<string>;
}
export declare const SELF_MODIFICATION_GITHUB_TOKEN_ENV = "EVE_SELF_MODIFICATION_GITHUB_TOKEN";
/** Checks PAT availability without returning the credential. */
export declare function hasGitHubCredential(): boolean;
/** Constructs the configured provider without resolving a credential. */
export declare function createGitHubCredentialProvider(credentials: ResolvedGitHubCredentials): GitHubCredentialProvider;
/** Resolves a PAT GitHub credential without exposing it to authored code. */
export declare function resolveGitHubCredential(request: GitHubCredentialRequest): Promise<string>;
export declare const defaultGitHubCredentialProvider: GitHubCredentialProvider;
export declare function createVercelConnectCredentialProvider(connector: string): GitHubCredentialProvider;
