/// <reference types="node" />
import vm from 'vm';
declare module 'vm' {
    abstract class Module {
        readonly namespace: any;
        readonly dependencySpecifiers: string[];
        link(linker: (specifier: string, referencingModule: Module) => Module | Promise<Module>): Promise<void>;
        evaluate(): Promise<void>;
    }
    class SourceTextModule extends Module {
        constructor(code: string, options: {
            identifier?: string;
            context?: vm.Context;
        });
    }
}
export interface ConfigModule {
    code: string;
    path: string;
}
export declare type ConfigPlatform = 'macos' | 'linux' | 'windows';
export interface ConfigRunContext {
    org: {
        id: string;
        slug: string;
    };
    user: {
        id: string;
        displayName: string;
    };
    build: {
        id: string;
        number: number;
    };
    repo: {
        id: string;
        slug: string;
        defaultBranch: string;
    };
    commit: {
        sha: string;
        branch: string;
        defaultBranch: boolean;
    };
}
export declare function runConfig(path: string, configSource: string, checkout: (source: string) => Promise<unknown>, fetch: (source: string) => Promise<string>, configCtx: ConfigRunContext, overrides: Record<string, string>): Promise<{
    config: {
        source: string;
        linux: string;
        macos: string;
        windows: string;
    };
    dependencies: string[];
}>;
//# sourceMappingURL=run.d.ts.map