import type { BasicMetaSysProps, DefaultElements, ISO8601Timestamp, Link, MakeRequest, VersionedLink } from '../common-types';
type JsonObject = {
    [Key in string]?: JsonValue;
};
type JsonArray = Array<JsonValue>;
type JsonValue = string | number | boolean | JsonObject | JsonArray | null;
declare enum EnvironmentTemplateInstallationStatuses {
    created = "created",
    inProgress = "inProgress",
    failed = "failed",
    succeeded = "succeeded",
    disconnected = "disconnected",
    inRetry = "inRetry"
}
export type EnvironmentTemplateInstallationStatus = keyof typeof EnvironmentTemplateInstallationStatuses;
export type EnvironmentTemplateInstallationProps = {
    sys: BasicMetaSysProps & {
        type: 'EnvironmentTemplateInstallation';
        space: Link<'Space'>;
        template: VersionedLink<'Template'>;
        status: EnvironmentTemplateInstallationStatus;
        createdAt: ISO8601Timestamp;
        updatedAt: ISO8601Timestamp;
        createdBy: Link<'User' | 'AppDefinition'>;
        updatedBy: Link<'User' | 'AppDefinition'>;
        completedAt?: ISO8601Timestamp;
        errors?: JsonArray;
        environment: Link<'Environment'>;
        version: number;
    };
};
export type CreateEnvironmentTemplateInstallationProps = {
    version: number;
    takeover?: {
        items: Link<'ContentType'>[];
    };
    changeSet?: Link<'ChangeSet'>;
    deleteDeletedFields?: boolean;
};
export type ValidateEnvironmentTemplateInstallationProps = Omit<CreateEnvironmentTemplateInstallationProps, 'version'>;
export type ValidationFinding = {
    message: string;
    details: Record<string, unknown>;
};
export type EnvironmentTemplateValidationProps<T = ValidationFinding> = {
    sys: {
        type: 'Array';
        environment: Link<'Environment'>;
        space: Link<'Space'>;
        changeSet: Link<'ChangeSet'>;
    };
    items: T[];
};
export type EnvironmentTemplateInstallation = EnvironmentTemplateInstallationProps & DefaultElements<EnvironmentTemplateInstallationProps>;
export declare function wrapEnvironmentTemplateInstallation(makeRequest: MakeRequest, data: EnvironmentTemplateInstallationProps): EnvironmentTemplateInstallation;
export declare const wrapEnvironmentTemplateInstallationCollection: (makeRequest: MakeRequest, data: import("..").CursorPaginatedCollectionProp<EnvironmentTemplateInstallationProps>) => import("..").CursorPaginatedCollection<EnvironmentTemplateInstallation, EnvironmentTemplateInstallationProps>;
export {};
