import type { GitHubTransport } from './client.ts';
import { type RepoRef } from './repo.ts';
export declare function listPulls(transport: GitHubTransport, ref: RepoRef, params: Record<string, string>, limit: number, include?: (row: Record<string, unknown>) => boolean): Promise<Record<string, unknown>[]>;
export declare function getPull(transport: GitHubTransport, ref: RepoRef, number: number): Promise<unknown>;
/**
 * The selected fields of one pull request, over GraphQL, as gh's
 * PullRequestByNumber asks for them for `pr view --json`: one query naming
 * only what was asked for. A selection that reads the page of a connection
 * after `$endCursor` is given that cursor as `endCursor`.
 *
 * Args:
 *   transport (GitHubTransport): the API client.
 *   ref (RepoRef): the repository.
 *   number (number): the pull request.
 *   selection (string): the GraphQL selection inside `pullRequest { }`.
 *   endCursor (string | undefined): the cursor `$endCursor` carries.
 */
export declare function pullRequestFields(transport: GitHubTransport, ref: RepoRef, number: number, selection: string, endCursor?: string): Promise<Record<string, unknown>>;
/** The narrowing `gh pr list` applies before it lists. */
export interface PullListFilter {
    readonly states: readonly string[];
    readonly base?: string | undefined;
    readonly head?: string | undefined;
}
/**
 * The selected fields of a repository's pull requests, over GraphQL, as
 * gh's PullRequestList asks for them for `pr list --json`: newest first, a
 * page of up to 100 at a time until `limit`. A pull request a later page
 * repeats is listed once, which gh can only tell when the line asked for
 * `number`.
 *
 * Args:
 *   transport (GitHubTransport): the API client.
 *   ref (RepoRef): the repository.
 *   filter (PullListFilter): the states and the base and head branches.
 *   limit (number): how many pull requests at most.
 *   selection (string): the GraphQL selection for each pull request.
 */
export declare function listPullRequestFields(transport: GitHubTransport, ref: RepoRef, filter: PullListFilter, limit: number, selection: string): Promise<Record<string, unknown>[]>;
export declare function createPull(transport: GitHubTransport, ref: RepoRef, body: Record<string, unknown>): Promise<unknown>;
export declare function editPull(transport: GitHubTransport, ref: RepoRef, number: number, body: Record<string, unknown>): Promise<unknown>;
export declare function mergePull(transport: GitHubTransport, ref: RepoRef, number: number, body: Record<string, unknown>): Promise<unknown>;
export declare function commentPull(transport: GitHubTransport, ref: RepoRef, number: number, body: string): Promise<unknown>;
export declare function diffPull(transport: GitHubTransport, ref: RepoRef, number: number): Promise<string>;
export declare function commitStatuses(transport: GitHubTransport, ref: RepoRef, sha: string): Promise<Record<string, unknown>[]>;
export declare function pullChecks(transport: GitHubTransport, ref: RepoRef, number: number, limit?: number): Promise<Record<string, unknown>[]>;
//# sourceMappingURL=pull.d.ts.map