import { Cache, StateObject } from "@hpcc-js/util";
import { IConnection, IOptions } from "../connection.ts";
import { DFUService, WsDfu } from "../services/wsDFU.ts";
export declare class LogicalFileCache extends Cache<{
    BaseUrl: string;
    Cluster: string;
    Name: string;
}, LogicalFile> {
    constructor();
}
export interface DFUPartEx extends WsDfu.DFUPart {
    Cluster: string;
    BaseDir: string;
    ReplicateDir: string;
    Replicate: boolean;
    CanReplicate: boolean;
}
export interface FileDetailEx extends WsDfu.FileDetail {
    Cluster: string;
    StateID?: number;
}
export declare class LogicalFile extends StateObject<FileDetailEx, FileDetailEx> implements FileDetailEx {
    protected connection: DFUService;
    get BaseUrl(): string;
    get Cluster(): string;
    get Name(): string;
    get Filename(): string;
    get Prefix(): string;
    get NodeGroup(): string;
    get NumParts(): number;
    get Description(): string;
    get Dir(): string;
    get PathMask(): string;
    get Filesize(): string;
    get FileSizeInt64(): number;
    get RecordSize(): string;
    get RecordCount(): string;
    get RecordSizeInt64(): number;
    get RecordCountInt64(): number;
    get Wuid(): string;
    get Owner(): string;
    get JobName(): string;
    get Persistent(): string;
    get Format(): string;
    get MaxRecordSize(): string;
    get CsvSeparate(): string;
    get CsvQuote(): string;
    get CsvTerminate(): string;
    get CsvEscape(): string;
    get Modified(): string;
    get Ecl(): string;
    get Stat(): WsDfu.Stat;
    get DFUFilePartsOnClusters(): WsDfu.DFUFilePartsOnClusters;
    get isSuperfile(): boolean;
    get ShowFileContent(): boolean;
    get subfiles(): WsDfu.subfiles;
    get Superfiles(): WsDfu.Superfiles;
    get ProtectList(): WsDfu.ProtectList;
    get FromRoxieCluster(): boolean;
    get Graphs(): WsDfu.Graphs;
    get UserPermission(): string;
    get ContentType(): string;
    get CompressedFileSize(): number;
    get PercentCompressed(): string;
    get IsCompressed(): boolean;
    get BrowseData(): boolean;
    get jsonInfo(): string;
    get binInfo(): WsDfu.base64Binary;
    get PackageID(): string;
    get Partition(): WsDfu.Partition;
    get Blooms(): WsDfu.Blooms;
    get ExpireDays(): number;
    get KeyType(): string;
    get IsRestricted(): boolean;
    get AtRestCost(): number;
    get AccessCost(): number;
    get StateID(): number;
    get ExpirationDate(): string;
    get ExtendedIndexInfo(): WsDfu.ExtendedIndexInfo;
    get CompressionType(): string;
    get properties(): FileDetailEx;
    static attach(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string, state?: FileDetailEx): LogicalFile;
    protected constructor(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string);
    filePartsOnCluster(): WsDfu.DFUFilePartsOnCluster[];
    fileParts(): DFUPartEx[];
    update(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse>;
    fetchInfo(): Promise<WsDfu.FileDetail>;
    fetchDefFile(format: WsDfu.DFUDefFileFormat): Promise<string>;
    fetchAllLogicalFiles(): Promise<string[]>;
    fetchListHistory(): Promise<WsDfu.Origin[]>;
    eraseHistory(): Promise<WsDfu.Origin[]>;
}
