/**
 * Minimal shape returned by GitHub content APIs.
 *
 * @private type of UseProjectCommitmentDefinition
 */
export type UseProjectGitHubContentsItem = {
    type: string;
    name: string;
    path: string;
    sha?: string;
    size?: number;
    content?: string;
    html_url?: string;
    download_url?: string;
};
/**
 * Minimal shape of GitHub branch reference API response.
 *
 * @private type of UseProjectCommitmentDefinition
 */
export type UseProjectGitHubGitRefResponse = {
    object?: {
        sha?: string;
    };
};
/**
 * Minimal shape of GitHub repository API response.
 *
 * @private type of UseProjectCommitmentDefinition
 */
export type UseProjectGitHubRepositoryResponse = {
    default_branch?: string;
};
/**
 * Minimal shape of GitHub pull request response.
 *
 * @private type of UseProjectCommitmentDefinition
 */
export type UseProjectGitHubPullRequestResponse = {
    number?: number;
    html_url?: string;
    title?: string;
    state?: string;
    head?: {
        ref?: string;
    };
    base?: {
        ref?: string;
    };
};
/**
 * Options for one GitHub API call.
 *
 * @private type of callGitHubApi
 */
type CallGitHubApiOptions = {
    method: 'GET' | 'POST' | 'PUT' | 'DELETE';
    path: string;
    query?: Record<string, string>;
    body?: Record<string, unknown>;
    allowNotFound?: boolean;
};
/**
 * Runs one GitHub API request and parses JSON response payload.
 *
 * @private function of UseProjectCommitmentDefinition
 */
export declare function callGitHubApi<TResponse = unknown>(token: string, options: CallGitHubApiOptions): Promise<TResponse | null>;
export {};
