import { Org } from '@salesforce/core';
import { PoolConfig } from './PoolConfig';
import { PoolBaseImpl } from './PoolBaseImpl';
import PoolJobExecutor from './PoolJobExecutor';
import { PoolError } from './PoolError';
import { LoggerLevel } from '@flxbl-io/sfp-logger';
import { Result } from 'neverthrow';
export default class PoolCreateImpl extends PoolBaseImpl {
    private pool;
    private poolScriptExecutor;
    private logLevel;
    private limiter;
    private scriptExecutorWrappedForBottleneck;
    private limits;
    private scratchOrgInfoFetcher;
    private scratchOrgInfoAssigner;
    private scratchOrgOperator;
    private totalToBeAllocated;
    private totalAllocated;
    constructor(hubOrg: Org, pool: PoolConfig, poolScriptExecutor: PoolJobExecutor, logLevel: LoggerLevel);
    protected onExec(): Promise<Result<PoolConfig, PoolError>>;
    private computeAllocation;
    private allocateScratchOrgsPerTag;
    private generateScratchOrgs;
    private fetchScratchOrgsFromSnapshotPool;
    private finalizeGeneratedScratchOrgs;
    private scriptExecutor;
}
