import { Workspace } from "./eclMeta";
export declare class Version {
    readonly prefix: string;
    readonly major: number;
    readonly minor: number;
    readonly patch: number;
    readonly postfix: string;
    constructor(build: string);
    parse(build: string): void;
    exists(): boolean;
    compare(other: Version): number;
    toString(): string;
}
export interface IECLErrorWarning {
    filePath: string;
    line: number;
    col: number;
    msg: string;
    severity: string;
}
export declare class EclccErrors {
    private _checked;
    private errWarn;
    private errOther;
    constructor(stdErr: string, checked: string[]);
    checked(): string[];
    all(): IECLErrorWarning[];
    errors(): IECLErrorWarning[];
    hasError(): boolean;
    warnings(): IECLErrorWarning[];
    hasWarning(): boolean;
    info(): IECLErrorWarning[];
    hasOther(): boolean;
    unknown(): string[];
    hasUnknown(): boolean;
}
export declare function walkXmlJson(node: any, callback: (key: string, childNode: any, stack: any[]) => void, stack?: any[]): void;
export declare class LocalWorkunit {
    jsonWU: any;
    constructor(jsonWU: any);
    bpGetValidLocations(filePath: any): any[];
}
export interface IArchive {
    content: string;
    err: EclccErrors;
}
export declare class ClientTools {
    eclccPath: string;
    protected binPath: string;
    protected cwd: string;
    protected includeFolders: string[];
    protected _legacyMode: boolean;
    protected _args: string[];
    protected _version: Version;
    constructor(eclccPath: string, cwd?: string, includeFolders?: string[], legacyMode?: boolean, args?: string[], version?: Version);
    clone(cwd?: string, includeFolders?: string[], legacyMode?: boolean, args?: string[]): ClientTools;
    exists(filePath: string): boolean;
    args(additionalItems?: string[]): string[];
    version(): Promise<Version>;
    versionSync(): Version;
    _paths: {};
    paths(): Promise<{}>;
    private loadXMLDoc;
    createWU(filename: string): Promise<LocalWorkunit>;
    createArchive(filename: string): Promise<IArchive>;
    attachWorkspace(): Workspace;
    fetchMeta(filePath: string): Promise<Workspace>;
    syntaxCheck(filePath: string, args?: string[]): Promise<EclccErrors>;
    private execFile;
}
export declare function locateAllClientTools(): Promise<ClientTools[]>;
export declare function locateClientTools(overridePath?: string, build?: string, cwd?: string, includeFolders?: string[], legacyMode?: boolean): Promise<ClientTools>;
//# sourceMappingURL=eclcc.d.ts.map