import { execFile } from "node:child_process";
export declare const execFileAsync: typeof execFile.__promisify__;
export interface VcsTarget {
    baseUrl: string;
    repo?: string;
}
export interface CommonOpts {
    url?: string;
    token?: string;
    context?: string;
}
export declare function redactToken(err: unknown, token: string): Error;
export declare function gitWithAuth(args: string[], token: string, cwd?: string): Promise<{
    stdout: string;
    stderr: string;
}>;
export declare function parseRemote(remoteUrl: string): VcsTarget | null;
export declare function resolveTarget(opts: CommonOpts & {
    repo?: string;
    cwd?: string;
}): Promise<VcsTarget>;
export declare function resolveToken(opts: CommonOpts): Promise<string>;
export declare function vcsApi(baseUrl: string, token: string, path: string, method?: string, body?: unknown): Promise<unknown>;
