import { CiProvider } from "./ci-providers/types";
import { Api, PrInfo } from "./api";
import { DeepReadonly } from "ts-essentials";
import { Path } from "./utils";
import { CodeChecksSettings, CodeChecksClientArgs } from "./types";
/**
 * Better part of execution context stays the same for all codechecks files being executed so we just get it once.
 */
export declare function getConstExecutionContext(api: Api, ciProvider: CiProvider, settings: CodeChecksSettings, gitRepoRootPath: string, args: CodeChecksClientArgs): Promise<SharedExecutionContext>;
export declare function getExecutionContext(sharedExecutionCtx: SharedExecutionContext, codeChecksFilePath: Path): ExecutionContext;
export declare type RefInfo = {
    sha: string;
};
export declare type ExecutionContext = DeepReadonly<{
    codeChecksFileAbsPath: string;
    workspaceRoot: string;
} & SharedExecutionContext>;
/**
 * This stays the same across different codechecks files
 */
export interface SharedExecutionContext {
    projectSlug: string;
    artifactsProxy: {
        url: string;
        supportsPages: boolean;
    };
    isPrivate: boolean;
    currentSha: string;
    isPr: boolean;
    pr?: PrInfo;
    isLocalMode?: {
        projectSlug: string;
        isOffline: boolean;
        isFailFast: boolean;
    };
    isFork: boolean;
    isSpeculativePr: boolean;
}
