import { RdfObjectLoader, Resource } from "rdf-object";
import { ITestCase } from "./testcase/ITestCase";
import { ITestCaseHandler } from "./testcase/ITestCaseHandler";
import { IFetchOptions } from "./Util";
/**
 * A manifest data holder.
 */
export interface IManifest {
    uri: string;
    label?: string;
    comment?: string;
    subManifests?: IManifest[];
    testEntries?: ITestCase<any>[];
    specifications?: {
        [uri: string]: IManifest;
    };
}
/**
 * Create a manifest object from a resource.
 * @param {{[uri: string]: ITestCaseHandler<ITestCase<any>>}} testCaseHandlers Handlers for constructing test cases.
 * @param {IFetchOptions} options The fetch options.
 * @param {Resource} resource A resource.
 * @return {Promise<IManifest>} A promise resolving to a manifest object.
 */
export declare function manifestFromResource(testCaseHandlers: {
    [uri: string]: ITestCaseHandler<ITestCase<any>>;
}, options: IFetchOptions, resource: Resource, objectLoader: RdfObjectLoader): Promise<IManifest>;
/**
 * Create a manifest object from a specification resource.
 * @param {{[uri: string]: ITestCaseHandler<ITestCase<any>>}} testCaseHandlers Handlers for constructing test cases.
 * @param {IFetchOptions} options The fetch options.
 * @param {Resource} resource A resource.
 * @return {Promise<IManifest>} A promise resolving to a manifest object.
 */
export declare function manifestFromSpecificationResource(testCaseHandlers: {
    [uri: string]: ITestCaseHandler<ITestCase<any>>;
}, options: IFetchOptions, resource: Resource, objectLoader: RdfObjectLoader): Promise<IManifest>;
