import { Org } from '@salesforce/core';
import { PoolConfig } from './PoolConfig';
import ScratchOrg from '../ScratchOrg';
import { Result } from 'neverthrow';
import { LoggerLevel } from '@flxbl-io/sfp-logger';
export default abstract class PoolJobExecutor {
    protected pool: PoolConfig;
    protected logToFilePath: string;
    constructor(pool: PoolConfig);
    execute(scratchOrg: ScratchOrg, hubOrg: Org, logLevel: LoggerLevel): Promise<Result<ScriptExecutionResult, JobError>>;
    abstract executeJob(scratchOrg: ScratchOrg, hubOrg: Org, logToFilePath: string, logLevel: LoggerLevel): Promise<Result<ScriptExecutionResult, JobError>>;
}
export interface ScriptExecutionResult {
    scratchOrgUsername: string;
}
export interface JobError {
    message: string;
    scratchOrgUsername: string;
}
