import { GraphCatalog } from "./catalog";
import { IRemoteDataFetcher, QueryPlan, RemoteNestedExpands } from "./types";
/**
 * Executes a compiled {@link QueryPlan}: fetch root, merge seed data, walk
 * depth stages fetching related rows and joining them onto parents, then
 * collapse fieldAlias shortcuts.
 */
export declare function executePlan({ plan, dataFetcher, catalog, }: {
    plan: QueryPlan;
    dataFetcher: IRemoteDataFetcher;
    catalog: GraphCatalog;
}): Promise<{
    data: any;
    responsePath?: string;
    rawResponse: {
        data: unknown[] | {
            [path: string]: unknown;
        };
        path?: string;
    };
    wasArray: boolean;
}>;
/**
 * Prunes a record to the requested fields, recursively for nested expands.
 */
export declare function filterFields(data: any, fields?: string[], expands?: RemoteNestedExpands): Record<string, unknown> | undefined;
//# sourceMappingURL=execute.d.ts.map