import { DTOExporterPropertyValueMap, DTOPipelineCreateBody, DTOPipelineUpdateBody } from "@supernova-studio/client";
import { Exporter, NewExporterPayload } from "../../model/exporters/SDKExporter";
import { ExporterJobDestination } from "../../model/exporters/SDKExporterJobDestination";
import { Pipeline } from "../../model/exporters/SDKPipeline";
import { ExporterCustomBlockVariant } from "../../model/exporters/custom_blocks/SDKExporterCustomBlockVariant";
import { ExporterConfigurationProperty } from "../../model/exporters/custom_properties/SDKExporterConfigurationProperty";
import { ExportBuild } from "../../model/exporters/exporter_builds/SDKExportBuild";
import { ExportBuildResultLog } from "../../model/exporters/exporter_builds/SDKExportBuildResults";
import { ImportJob } from "../../model/jobs/SDKImportJob";
import { DataCore } from "../data/SDKDataCore";
import { RemoteVersionIdentifier } from "./SDKRemoteIdentifiers";
export declare class AreaAutomation {
    /** Internal: Engine */
    private dataCore;
    constructor(dataCore: DataCore);
    /** Fetches all pipelines that are available by workspace id and design system id */
    getPipelines(workspaceId: string, designSystemId?: string): Promise<Array<Pipeline>>;
    /** Fetches all builds of pipelines
     * @param workspaceId - Identifier of the workspace where the pipeline is installed
     * @param versionId - Identifier of the version where the pipeline is installed
     */
    getExportBuilds(workspaceId: string, versionId: string): Promise<Array<ExportBuild>>;
    /** Fetches a single export build.
     * @param workspaceId - Identifier of the workspace associated with the build.
     * @param buildId - Identifier of the build.
     */
    getExportBuild(workspaceId: string, buildId: string): Promise<ExportBuild>;
    /** Fetches build logs of a specific build
     * @param workspaceId - Identifier of the workspace where the pipeline is installed
     * @param buildId - Identifier of the build to fetch logs for
     */
    getExportBuildLogs(workspaceId: string, buildId: string): Promise<Array<ExportBuildResultLog>>;
    /** Fetches exporters belonging to workspace by id */
    getExporters(workspaceId: string, filter?: {
        installedOnly?: boolean;
    }): Promise<Array<Exporter>>;
    /** Updates exporter
     * @param workspaceId - Identifier of the workspace where the exporter is installed
     * @param exporterId - Identifier of the exporter to update
     * @param payload - Payload to update exporter with
     */
    updateExporter(workspaceId: string, exporterId: string, payload: NewExporterPayload): Promise<Exporter>;
    /** Updates exporter configuration property value
     * @param designSystemId
     * @param exporterId
     * @param propertyKey
     * @param propertyValue
     */
    updateExporterConfigurationPropertyValue(designSystemId: string, exporterId: string, propertyKey: string, propertyValue: any): Promise<void>;
    /** Deletes exporter configuration property value
     * @param designSystemId
     * @param exporterId
     * @param propertyKey
     */
    deleteExporterConfigurationPropertyValue(designSystemId: string, exporterId: string, propertyKey: string): Promise<void>;
    /** Deletes exporter
     * @param workspaceId - Identifier of the workspace where the exporter is installed
     * @param exporterId - Identifier of the exporter to delete
     */
    deleteExporter(workspaceId: string, exporterId: string): Promise<void>;
    /** Pulls latest version of exporter from remote repository
     * @param workspaceId - Identifier of the workspace where the exporter is installed
     * @param exporterId - Identifier of the exporter to pull
     */
    pullLatestExporter(workspaceId: string, exporterId: string): Promise<Exporter>;
    /** Fetches all custom configuration properties that specific exporter provides
     * @param exporterId - Identifier of the exporter to fetch configuration for
     * @param from - Remote version to fetch from
     * @returns All custom blocks
     */
    getExporterConfiguration(workspaceId: string, exporterId: string, designSystemId: string): Promise<Array<ExporterConfigurationProperty>>;
    /** Fetches all custom variants that specific exporter provides
     * @param workspaceId - Identifier of the workspace where the exporter is installed
     * @param exporterId - Identifier of the exporter to fetch configuration for
     * @returns All custom variants
     */
    getExporterBlockVariants(workspaceId: string, exporterId: string): Promise<Array<ExporterCustomBlockVariant>>;
    /** Gets all import jobs that are currently in progress.
     * @param userId - User id to delete integration for. Can only be invoked on user id that is currently authenticated.
     * @returns Nothing
     */
    getImportJobs(from: RemoteVersionIdentifier): Promise<Array<ImportJob>>;
    getImportJob(from: RemoteVersionIdentifier, jobId: string): Promise<ImportJob>;
    scheduleImportJobForFigmaSources(from: RemoteVersionIdentifier, sourceIds: Array<string>, dryRun?: boolean): Promise<ImportJob>;
    /** Create pipeline
     * @param workspaceId string
     * @param payload
     * @returns Pipeline
     */
    createPipeline(workspaceId: string, payload: DTOPipelineCreateBody): Promise<Pipeline>;
    /** Update pipeline
     * @returns Pipeline
     * @param designSystemId
     * @param pipelineId
     * @param payload
     */
    updatePipeline(designSystemId: string, pipelineId: string, payload: DTOPipelineUpdateBody): Promise<Pipeline>;
    /**
     * Run pipeline
     * @param workspaceId string
     * @param designSystemVersionId string
     * @param pipelineId string
     */
    runPipeline(workspaceId: string, designSystemVersionId: string, pipelineId: string): Promise<ExportBuild>;
    /** Create exporter
     * @param workspaceId string
     * @param payload NewExporterPayload
     * @returns Exporter
     */
    createExporter(workspaceId: string, payload: NewExporterPayload): Promise<Exporter>;
    /** Create exporter build
     * @param workspaceId string
     * @param designSystemId string
     * @param versionId string
     * @param exporterId string
     * @param destinations
     * @param brandId
     * @param themePersistentIds
     * @param exporterConfigurationProperties
     * @param previewMode
     */
    createExporterBuild(workspaceId: string, designSystemId: string, versionId: string, exporterId: string, destinations: ExporterJobDestination, brandId: string | undefined, themePersistentIds: Array<string> | undefined, exporterConfigurationProperties: DTOExporterPropertyValueMap | undefined, previewMode: boolean | undefined): Promise<ExportBuild>;
    deletePipeline(workspaceId: string, pipelineId: string): Promise<void>;
}
