import { GitProviderRoot } from "./gitProviderRoot.js";
export declare abstract class GitProvider {
    static getInstance(prompt?: boolean): Promise<GitProviderRoot | null>;
    private static handleManualGitServerAuth;
    static managePostPullRequestComment(): Promise<void>;
    static getDeploymentCheckId(): Promise<string | null>;
    static getCurrentBranchUrl(): Promise<string | null>;
    static getJobUrl(): Promise<string | null>;
    static supportsMermaidInPrMarkdown(): Promise<boolean>;
    static supportsSvgAttachments(): Promise<boolean>;
    static prInfoCache: any;
    static getPullRequestInfo(options?: {
        useCache: boolean;
    }): Promise<CommonPullRequestInfo | null>;
    static isDeployBeforeMerge(): boolean;
    static getMergeRequestName(gitUrl: string): string;
    static getMergeRequestCreateUrl(gitUrl: string, targetBranch: string, sourceBranch: string): string | null;
}
export declare type CommonPullRequestInfo = {
    idNumber: number;
    idStr: string;
    targetBranch: string;
    sourceBranch: string;
    title: string;
    description: string;
    authorName: string;
    webUrl: string;
    customBehaviors: {
        noDeltaDeployment?: boolean;
        purgeFlowVersions?: boolean;
        destructiveChangesAfterDeployment?: boolean;
    };
    providerInfo: any;
};
export declare type PullRequestData = {
    messageKey: string;
    title: string;
    deployErrorsMarkdownBody?: string;
    codeCoverageMarkdownBody?: string;
    commitsSummary?: string;
    deployStatus?: "valid" | "invalid" | "unknown";
    status?: "valid" | "invalid" | "tovalidate";
    flowDiffMarkdown?: {
        markdownSummary?: string;
        flowDiffMarkdownList?: Array<{
            name: string;
            markdown: string;
            markdownFile?: string;
        }>;
    };
};
declare global {
    var pullRequestData: Partial<PullRequestData> | undefined;
    var pullRequestCommentSent: boolean | undefined;
    var pullRequestDeploymentId: string | undefined;
}
export declare type PullRequestMessageRequest = {
    title: string;
    message: string;
    messageKey: string;
    status: "valid" | "invalid" | "tovalidate";
    sourceFile?: string;
};
export declare type PullRequestMessageResult = {
    posted: boolean;
    providerResult: any;
    additionalProviderResult?: any;
};
