import { Cache, StateObject } from "@hpcc-js/util";
import { IConnection, IOptions } from "../connection";
import { DFUQuery } from "../services/wsDFU";
import { WorkunitsService, WUInfo, WUResult } from "../services/wsWorkunits";
import { XSDSchema, XSDXMLNode } from "./xsdParser";
export declare class GlobalResultCache extends Cache<{
    Wuid: string;
    ResultName: string;
}, Result> {
    constructor();
}
export interface ECLResultEx extends WUInfo.ECLResult {
    Wuid: string;
    ResultName?: string;
    ResultSequence?: number;
    LogicalFileName?: string;
    ResultViews: any[];
}
export declare type UResulState = ECLResultEx & DFUQuery.DFULogicalFile;
export declare type IResulState = ECLResultEx | DFUQuery.DFULogicalFile;
export declare class Result extends StateObject<UResulState, IResulState> implements ECLResultEx {
    protected connection: WorkunitsService;
    protected xsdSchema: XSDSchema;
    readonly properties: WUInfo.ECLResult;
    readonly Wuid: string;
    readonly ResultName: string | undefined;
    readonly ResultSequence: number | undefined;
    readonly LogicalFileName: string | undefined;
    readonly Name: string;
    readonly Sequence: number;
    readonly Value: string;
    readonly Link: string;
    readonly FileName: string;
    readonly IsSupplied: boolean;
    readonly ShowFileContent: boolean;
    readonly Total: number;
    readonly ECLSchemas: WUInfo.ECLSchemas;
    readonly NodeGroup: string;
    readonly ResultViews: any[];
    readonly XmlSchema: string;
    static attach(optsConnection: IOptions | IConnection, wuid: string, resultName: string, state?: IResulState): Result;
    constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuidOrLogicalFile: string, resultName?: string | number);
    constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WUInfo.ECLResult, resultViews: any[]);
    isComplete(): boolean;
    fetchXMLSchema(): Promise<XSDSchema | null>;
    refresh(): Promise<this>;
    fetchRows(from?: number, count?: number, includeSchema?: boolean, filter?: {
        [key: string]: string | number;
    }): Promise<any[]>;
    rootField(): XSDXMLNode | null;
    fields(): XSDXMLNode[];
    protected WUResult(start?: number, count?: number, suppressXmlSchema?: boolean, filter?: {
        [key: string]: string | number;
    }): Promise<WUResult.Response>;
}
export declare class ResultCache extends Cache<WUInfo.ECLResult, Result> {
    constructor();
}
//# sourceMappingURL=result.d.ts.map