import { StateObject, RecursivePartial } from "@hpcc-js/util";
import { IConnection, IOptions } from "../connection.ts";
import { EclService, IWsEclRequest, IWsEclResponse, IWsEclResult } from "../services/wsEcl.ts";
import { WorkunitsService, WsWorkunits } from "../services/wsWorkunits.ts";
import { Topology } from "./topology.ts";
import { IScope } from "./workunit.ts";
import { QueryGraph } from "./queryGraph.ts";
export { QueryGraph };
export interface QueryEx extends WsWorkunits.WUQueryDetailsResponse {
    BaseUrl: string;
}
export declare class Query extends StateObject<QueryEx, QueryEx> implements QueryEx {
    protected wsWorkunitsService: WorkunitsService;
    get BaseUrl(): string;
    protected topology: Topology;
    protected _requestSchema: IWsEclRequest;
    protected _responseSchema: IWsEclResponse;
    get properties(): WsWorkunits.WUQueryDetailsResponse;
    get Exceptions(): WsWorkunits.Exceptions;
    get QueryId(): string;
    get QuerySet(): string;
    get QueryName(): string;
    get Wuid(): string;
    get Dll(): string;
    get Suspended(): boolean;
    get Activated(): boolean;
    get SuspendedBy(): string;
    get Clusters(): WsWorkunits.Clusters2;
    get PublishedBy(): string;
    get Comment(): string;
    get LogicalFiles(): WsWorkunits.LogicalFiles;
    get SuperFiles(): WsWorkunits.SuperFiles;
    get IsLibrary(): boolean;
    get Priority(): string;
    get WUSnapShot(): string;
    get CompileTime(): string;
    get LibrariesUsed(): WsWorkunits.LibrariesUsed;
    get CountGraphs(): number;
    get ResourceURLCount(): number;
    get WsEclAddresses(): WsWorkunits.WsEclAddresses;
    get WUGraphs(): WsWorkunits.WUGraphs;
    get WUTimers(): WsWorkunits.WUTimers;
    get PriorityID(): number;
    private constructor();
    static attach(optsConnection: IOptions | IConnection, querySet: string, queryId: string, state?: QueryEx): Query;
    private _eclService;
    protected wsEclService(): Promise<EclService | undefined>;
    private fetchDetails;
    private fetchRequestSchema;
    private fetchResponseSchema;
    private fetchSchema;
    fetchSummaryStats(): Promise<WsWorkunits.WUQueryGetSummaryStatsResponse>;
    fetchGraph(GraphName?: string, SubGraphId?: string): Promise<QueryGraph>;
    fetchDetailsNormalized(request?: RecursivePartial<WsWorkunits.WUDetails>): Promise<{
        meta: WsWorkunits.WUDetailsMetaResponse | undefined;
        columns: {
            [id: string]: any;
        } | undefined;
        data: IScope[] | undefined;
    }>;
    submit(request: object): Promise<Array<{
        [key: string]: object[];
    }>>;
    refresh(): Promise<this>;
    requestFields(): IWsEclRequest;
    responseFields(): IWsEclResponse;
    resultNames(): string[];
    resultFields(resultName: string): IWsEclResult;
}
