import type { IContextIopaLegacy, IContextIopa, IFactory } from '@iopa/types';
import FreeList from '../util/freelist';
export default class Factory<C, T extends IContextIopa<C> & {
    init: Function;
    dispose?: Function;
}> implements IFactory<C, T> {
    protected _factory: FreeList<T>;
    constructor(name?: string, size?: number, factory?: () => T);
    createContext(urlOrRequest?: string | Request, options?: Partial<IContextIopaLegacy<C>>): T;
    protected createChildContext(parentContext: T, urlPath?: string, defaults?: any): T;
    protected _dispose(context: T & IContextIopa<C> & {
        init: Function;
        dispose?: Function;
    }): void;
}
export declare function _nextSequence(): string;
//# sourceMappingURL=factory-core.d.ts.map