export declare enum ViewerResourceType {
    Model = "Model",
    Object = "Object",
    ModelFolder = "ModelFolder",
    AllModels = "all-models"
}
export interface ViewerResource {
    type: ViewerResourceType;
    toString(): string;
}
export declare class ViewerAllModelsResource implements ViewerResource {
    type: ViewerResourceType;
    toString(): string;
}
export declare class ViewerModelResource implements ViewerResource {
    type: ViewerResourceType;
    modelId: string;
    versionId?: string;
    constructor(modelId: string, versionId?: string);
    toString(): string;
}
export declare class ViewerVersionResource extends ViewerModelResource {
    versionId: string;
    constructor(modelId: string, versionId: string);
    toJSON(): string;
}
export declare class ViewerObjectResource implements ViewerResource {
    type: ViewerResourceType;
    objectId: string;
    constructor(objectId: string);
    toString(): string;
}
export declare class ViewerModelFolderResource implements ViewerResource {
    type: ViewerResourceType;
    folderName: string;
    constructor(folderName: string);
    toString(): string;
}
export declare function parseUrlParameters(resourceGetParam: string): ViewerResource[];
export declare function createGetParamFromResources(resources: ViewerResource[]): string;
export declare const isAllModelsResource: (r: ViewerResource) => r is ViewerAllModelsResource;
export declare const isModelResource: (r: ViewerResource) => r is ViewerModelResource;
export declare const isObjectResource: (r: ViewerResource) => r is ViewerObjectResource;
export declare const isModelFolderResource: (r: ViewerResource) => r is ViewerModelFolderResource;
declare class ViewerResourceBuilder {
    #private;
    addAllModels(): this;
    addModel(modelId: string, versionId?: string): this;
    addModelFolder(folderName: string): this;
    addObject(objectId: string): this;
    toString(): string;
    toResources(): ViewerResource[];
    clear(): this;
}
/**
 * Fluent API for easier resource building
 */
export declare function resourceBuilder(): ViewerResourceBuilder;
export {};
//# sourceMappingURL=route.d.ts.map