import Bluebird from "./deps/bluebird_fork";
import { ProgramInspector } from "./definition/ProgramInspector";
export interface ResolveArgs {
    id?: string;
    program?: string | {};
    url?: string;
}
export declare class ProgramInspectorFacility {
    private _cache;
    constructor();
    /**
     * Resolves the program inspector for a specified workflow `Program`. This function will cache the workflow program by default
     * and will return the cached version in subsequent lookups, unless instructed otherwise.
     * @param args The input `ResolveArgs` argument. Depending on the host, this may be a url or an object containing an id, url or workflow `Program` object.
     * @param useCache An optional boolean which determines whether caching is allowed for retrieved workflow programs. Defaults to true.
     * @param workflowDownloader An optional function which may be used to override the default download function for retrieving a workflow `Program`
     *                           This is useful on hosts like GVH where special processing may be required before downloading resources.
     */
    resolveInspector(args: ResolveArgs | string, useCache?: boolean, workflowDownloader?: (url: string) => Bluebird<any>): Bluebird<ProgramInspector>;
    private downloadAndResolveInspector;
    private loadWorkflow;
    private createInspector;
}
