import { ImplementableObjectRef, type SchemaTypes } from '@pothos/core';
import type { DataLoaderOptions, LoadableNodeId } from '../types.js';
import { LoadableObjectRef } from './object.js';
export declare class LoadableNodeRef<Types extends SchemaTypes, RefShape, Shape, IDShape extends bigint | number | string = string, Key extends bigint | number | string = IDShape, CacheKey = Key> extends LoadableObjectRef<Types, RefShape, Shape, Key, CacheKey> {
    parseId: ((id: string, ctx: object) => IDShape) | undefined;
    builder: PothosSchemaTypes.SchemaBuilder<Types>;
    constructor(builder: PothosSchemaTypes.SchemaBuilder<Types>, name: string, { id, loaderOptions, load, toKey, sort, }: DataLoaderOptions<Types, Shape | Error, Key, CacheKey, Shape> & LoadableNodeId<Types, Shape, IDShape>);
}
export declare class ImplementableLoadableNodeRef<Types extends SchemaTypes, RefShape, Shape, IDShape extends bigint | number | string = string, Key extends bigint | number | string = IDShape, CacheKey = Key> extends ImplementableObjectRef<Types, RefShape, Shape> {
    parseId: ((id: string, ctx: object) => IDShape) | undefined;
    getDataloader: import("@pothos/core").ContextCache<import("dataloader")<Key, Shape, CacheKey>, object, [
    ]>;
    protected cacheResolved: false | ((value: Shape) => Key) | undefined;
    constructor(builder: PothosSchemaTypes.SchemaBuilder<Types>, name: string, { id, loaderOptions, load, toKey, sort, cacheResolved, }: DataLoaderOptions<Types, Shape | Error, Key, CacheKey, Shape> & LoadableNodeId<Types, Shape, IDShape>);
}
//# sourceMappingURL=node.d.ts.map
