import type { PineOptionsStrict, PineSelectableProps, PineTypedResult } from '..';
export interface ChunkSizeOptions {
    numericId: number;
    stringId: number;
}
export declare function batchResourceOperationFactory<T extends {
    id: number;
    uuid: string;
}>({ getAll, NotFoundError, AmbiguousResourceError, chunkSize: chunkSizeParam, }: {
    getAll: (options?: PineOptionsStrict<T>) => Promise<T[]>;
    NotFoundError: new (id: string | number) => Error;
    AmbiguousResourceError: new (id: string | number) => Error;
    chunkSize?: number | Partial<ChunkSizeOptions>;
}): {
    <TOpts extends PineOptionsStrict<T>>(options: {
        uuidOrIdOrArray: number | number[] | string | string[];
        parameterName?: string;
        options?: TOpts;
        groupByNavigationPoperty?: undefined;
        fn: (items: Array<{
            id: number;
            uuid: string;
        } & (TOpts extends PineOptionsStrict<T> ? PineTypedResult<T, TOpts> : object)>) => Promise<void>;
    }): Promise<void>;
    <TOpts extends PineOptionsStrict<T>>(options: {
        uuidOrIdOrArray: number | number[] | string | string[];
        parameterName?: string;
        options?: TOpts;
        groupByNavigationPoperty: PineSelectableProps<T>;
        fn: (items: Array<{
            id: number;
            uuid: string;
        } & (TOpts extends PineOptionsStrict<T> ? PineTypedResult<T, TOpts> : object)>, ownerId: number) => Promise<void>;
    }): Promise<void>;
};
