import Ajv from "ajv";
export declare class RojoProjectError extends Error {
}
export declare enum FileRelation {
    OutToOut = 0,
    OutToIn = 1,
    InToOut = 2,
    InToIn = 3
}
export declare enum NetworkType {
    Unknown = 0,
    Client = 1,
    Server = 2
}
export declare class RojoProject {
    private readonly basePath;
    private partitions;
    private isolatedContainers;
    private tree;
    private parseTree;
    private constructor();
    static validateRojo: Ajv.ValidateFunction | undefined;
    static fromPath(rojoPath: string): Promise<RojoProject>;
    static fromPathSync(rojoPath: string): RojoProject;
    static cwd(): Promise<RojoProject>;
    private getRbxPathFromFile;
    getRbxFromFile(filePath: string): {
        path: string[] | undefined;
        type: string;
    };
    isGame(): boolean;
    private getContainer;
    getFileRelation(filePath: string, modulePath: string): FileRelation;
    isIsolated(filePath: string): boolean;
    getNetworkType(filePath: string): NetworkType;
    static relative(rbxFrom: ReadonlyArray<string>, rbxTo: ReadonlyArray<string>): string[];
}
