import { BaseSopOperation } from '../../_Base';
import { CoreGroup } from '../../../../../core/geometry/Group';
import { Object3D } from 'three';
import { DefaultOperationParams } from '../../../../../core/operations/_Base';
import type { BaseGeoLoaderOutput } from '../../../../../core/loader/geometry/Common';
import { BaseObject3DLoaderHandler } from '../../../../../core/loader/geometry/_BaseLoaderHandler';
export interface BaseFileSopParams extends DefaultOperationParams {
    url: string;
    matrixAutoUpdate: boolean;
}
export declare abstract class BaseFileSopOperation<O extends BaseGeoLoaderOutput> extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: BaseFileSopParams;
    protected abstract _createGeoLoaderHandler(params: BaseFileSopParams): BaseObject3DLoaderHandler<O>;
    cook(inputCoreGroups: CoreGroup[], params: BaseFileSopParams): Promise<CoreGroup>;
    protected _load(loader: BaseObject3DLoaderHandler<O>, params: BaseFileSopParams): Promise<Object3D<import("three").Object3DEventMap>[] | undefined>;
    private _onLoad;
    private _ensureGeometryHasIndex;
}
