import { Remote } from '../remotes';
export declare function getPath(scopePath: string): string;
export declare type ScopeJsonProps = {
    name: string;
    version: string;
    resolverPath?: string;
    hooksPath?: string;
    license?: string;
    groupName: string | null | undefined;
    remotes?: {
        name: string;
        url: string;
    };
};
export declare class ScopeJson {
    _name: string;
    version: string | null | undefined;
    resolverPath: string | null | undefined;
    hooksPath: string | undefined;
    license: string | null | undefined;
    remotes: {
        [key: string]: string;
    };
    groupName: string;
    constructor({ name, remotes, resolverPath, hooksPath, license, groupName, version }: ScopeJsonProps);
    set name(suggestedName: string);
    get name(): string;
    toPlainObject(): {};
    toJson(readable?: boolean): string;
    set(key: string, val: string): this;
    get(key: string): string;
    del(key: string): string;
    addRemote(remote: Remote): this;
    rmRemote(name: string): boolean;
    write(path: string): Promise<void>;
    static loadFromJson(json: string): ScopeJson;
    static loadFromFile(scopeJsonPath: string): Promise<ScopeJson>;
    getPopulatedLicense(): Promise<string | null | undefined>;
}
