import type { S3BucketName } from "../../../aws/CustomTypes/S3BucketName";
import type { Project, ProjectId, ProjectType } from "../../Types";
import type { ValidateProjectResponse } from "../BuildsManager/Types";
import type { AbstractServiceClientClass, ServiceClientBase, ServiceClientMixin } from "./common";
export declare const backofficeUrlSym: unique symbol;
export interface ProjectValidatingServiceClientParams {
    [backofficeUrlSym]: string;
}
interface ProjectValidatingServiceClientInstance {
    validateProjectByType(projectDir: string, projectType: ProjectType, options?: {
        initializeProject?: boolean;
    }): Promise<ValidateProjectResponse>;
    getProject(dir: string): Promise<Project>;
}
export declare type ProjectValidatingServiceClientCtor<T extends AbstractServiceClientClass> = ServiceClientMixin<T, ProjectValidatingServiceClientInstance, ProjectValidatingServiceClientParams>;
export declare function ProjectValidatingServiceClient<T extends (abstract new (...args: any[]) => ServiceClientBase)>(Base: T): ProjectValidatingServiceClientCtor<T>;
export interface PublishPath {
    bucket: S3BucketName;
    newProjectId: ProjectId;
    projectType: ProjectType;
}
export {};
