import { type ExecutionDetails } from "../index.ts";
import type { GrafastResultsList, Maybe } from "../interfaces.ts";
import { Step } from "../step.ts";
import { LoadManyStep } from "./loadMany.ts";
/**
 * You shouldn't create instances of this yourself - use `loadOne` or `loadMany` instead.
 */
export declare class LoadedRecordStep<TItem, TData extends Maybe<TItem> = Maybe<TItem>, TParams extends Record<string, any> = Record<string, any>> extends Step<TData> {
    static $$export: {
        moduleName: string;
        exportName: string;
    };
    isSyncAndSafe: boolean;
    attributes: Set<keyof TItem>;
    paramDepIdByKey: {
        [TKey in keyof TParams]: number;
    };
    private isSingle;
    private sourceDescription;
    private ioEquivalence;
    constructor($loadMany: LoadManyStep<any, any, any, any, any>, $data: Step<TData>, isSingle: boolean, sourceDescription: Maybe<string>, ioEquivalence: Record<string, Step>);
    toStringMeta(): string | null;
    get(attr: keyof TItem & (string | number)): Step<any>;
    private _getInner;
    setParam<TParamKey extends keyof TParams>(paramKey: TParamKey, value: TParams[TParamKey] | Step<TParams[TParamKey]>): void;
    setParams<TParams extends {
        [key in keyof TParams]?: TParams[key] | Step<TParams[key]>;
    }>(params: TParams): void;
    deduplicate(peers: LoadedRecordStep<any, any>[]): LoadedRecordStep<any, any, Record<string, any>>[];
    deduplicatedWith(replacement: LoadedRecordStep<any, any>): void;
    optimize(): Step<any> | import("./__flag.ts").__FlagStep<Step<any>>;
    execute({ count, values: [values0], }: ExecutionDetails<[TData]>): GrafastResultsList<TData>;
}
//# sourceMappingURL=loadedRecord.d.ts.map