import immutable from 'immutable';
import { Subgraph as ISubgraph } from './protocols/subgraph';
type ResolveFile = (path: string) => string;
export default class Subgraph {
    static validate(data: any, protocol: any, { resolveFile }: {
        resolveFile: ResolveFile;
    }): Promise<any>;
    static validateSchema(manifest: any, { resolveFile }: {
        resolveFile: ResolveFile;
    }): void;
    static validateRepository(manifest: immutable.Collection<any, any>): immutable.List<unknown>;
    static validateDescription(manifest: immutable.Collection<any, any>): immutable.List<unknown>;
    static validateHandlers(manifest: immutable.Collection<any, any>, protocol: any, protocolSubgraph: ISubgraph): any;
    static validateContractValues(manifest: any, protocol: any): any;
    static validateUniqueDataSourceNames(manifest: any): any;
    static validateUniqueTemplateNames(manifest: any): any;
    static dump(manifest: any): string;
    static load(filename: string, { protocol, skipValidation }?: {
        protocol?: any;
        skipValidation?: boolean;
    }): Promise<{
        result: immutable.Map<any, any>;
        warning: string | null;
    }>;
    static write(manifest: any, filename: string): Promise<void>;
}
export {};
