import type { GerritBranchInfo, GerritChange, GerritChangeMessageInfo, GerritFindPRConfig, GerritMergeableInfo, GerritProjectInfo } from './types';
declare class GerritClient {
    private requestDetails;
    private gerritHttp;
    getRepos(): Promise<string[]>;
    getProjectInfo(repository: string): Promise<GerritProjectInfo>;
    getBranchInfo(repository: string): Promise<GerritBranchInfo>;
    findChanges(repository: string, findPRConfig: GerritFindPRConfig, refreshCache?: boolean): Promise<GerritChange[]>;
    getChange(changeNumber: number): Promise<GerritChange>;
    getMergeableInfo(change: GerritChange): Promise<GerritMergeableInfo>;
    abandonChange(changeNumber: number): Promise<void>;
    submitChange(changeNumber: number): Promise<GerritChange>;
    setCommitMessage(changeNumber: number, message: string): Promise<void>;
    updateCommitMessage(number: number, gerritChangeID: string, prTitle: string): Promise<void>;
    getMessages(changeNumber: number): Promise<GerritChangeMessageInfo[]>;
    addMessage(changeNumber: number, fullMessage: string, tag?: string): Promise<void>;
    checkForExistingMessage(changeNumber: number, newMessage: string, msgType?: string): Promise<boolean>;
    addMessageIfNotAlreadyExists(changeNumber: number, message: string, tag?: string): Promise<void>;
    setLabel(changeNumber: number, label: string, value: number): Promise<void>;
    addReviewer(changeNumber: number, reviewer: string): Promise<void>;
    addAssignee(changeNumber: number, assignee: string): Promise<void>;
    getFile(repo: string, branch: string, fileName: string): Promise<string>;
    approveChange(changeId: number): Promise<void>;
    checkIfApproved(changeId: number): Promise<boolean>;
    wasApprovedBy(change: GerritChange, username: string): boolean | undefined;
    normalizeMessage(message: string): string;
    private static buildSearchFilters;
}
export declare const client: GerritClient;
export {};
