import { type JsLoaderContext, type JsLoaderItem } from '@rspack/binding';
import type { Compiler } from '../Compiler.js';
type LoaderObjectOptions = string | (object & {
    ident?: unknown;
}) | null;
export declare class LoaderObject {
    request: string;
    path: string;
    query: string;
    fragment: string;
    options?: LoaderObjectOptions;
    ident: string | null;
    normal?: Function | null;
    pitch?: Function | null;
    raw?: boolean | null;
    type?: 'module' | 'commonjs';
    parallel?: boolean | {
        maxWorkers?: number;
    };
    /**
     * @internal This field is rspack internal. Do not edit.
     */
    loaderItem: JsLoaderItem;
    constructor(loaderItem: JsLoaderItem, compiler: Compiler);
    get pitchExecuted(): boolean;
    set pitchExecuted(value: boolean);
    get normalExecuted(): boolean;
    set normalExecuted(value: boolean);
    set noPitch(value: boolean);
    shouldYield(): boolean;
    static __from_binding(loaderItem: JsLoaderItem, compiler: Compiler): LoaderObject;
    static __to_binding(loader: LoaderObject): JsLoaderItem;
}
export declare function runLoaders(compiler: Compiler, context: JsLoaderContext): Promise<JsLoaderContext>;
export {};
