import { DTOExporterPropertyDefinition } from "@supernova-studio/client";
import { ExporterCustomBlock, ExporterCustomBlockModel } from "./custom_blocks/SDKExporterCustomBlock";
import { ExporterCustomBlockVariant } from "./custom_blocks/SDKExporterCustomBlockVariant";
import { ExporterConfigurationProperty, ExporterConfigurationPropertyModel } from "./custom_properties/SDKExporterConfigurationProperty";
import { ExporterPropertyDefinition } from "./custom_properties/SDKExporterPropertyDefinition";
export type ExporterProvider = "github" | "gitlab" | "bitbucket" | "azure";
export type ExporterModel = {
    id: string;
    packageId: string;
    isPrivate: boolean;
    isDefaultDocumentationExporter: boolean;
    isOwner?: boolean;
    usesBrands: boolean;
    usesThemes?: boolean;
    name: string;
    description: string;
    version: string;
    author: string;
    organization: string;
    homepage: string;
    readme: string;
    iconURL?: string;
    tags: Array<string>;
    gitProvider: ExporterProvider;
    gitUrl: string;
    gitBranch: string;
    gitDirectory: string;
    blockVariants?: object;
    properties?: Array<DTOExporterPropertyDefinition>;
    configurationProperties?: Array<ExporterConfigurationPropertyModel>;
    customBlocks?: Array<ExporterCustomBlockModel>;
    exporterType: "code" | "documentation";
    isDeprecated: boolean;
    deprecationNote?: string;
    replacementExporterId?: string;
};
export type NewExporterPayload = {
    url?: string;
    provider?: ExporterProvider;
};
export type ExporterMembershipModel = {
    exporterId: string;
    workspaceId: string;
    role: "Owner" | "User";
};
export declare class Exporter {
    /** Unique exporter installation id. This id is used to referenced exporter within Supernova system (for example, in ds.documentationExporterId) */
    id: string;
    /** Original exporter package id, as defined in exporter.json */
    packageId: string;
    /** Store status of the exporter - private exporters are only visible to your workspace, while public are visible to everyone and can be installed by anyone */
    isPrivate: boolean;
    /** If true, this exporter is currently being used for documentation purposes */
    isDefaultDocumentationExporter: boolean;
    /** If true, this exporter uses branding functionality  */
    usesBrands: boolean;
    /** If true, this exporter uses branding functionality  */
    usesThemes: boolean | null;
    /** Exporter human-readable name */
    name: string;
    /** Exporter human-readable description */
    description: string | null;
    /** Exporter semantic version */
    version: string;
    /** Name of the package author */
    author: string | null;
    /** Name of the package author's organization */
    organization: string | null;
    /** Package marketing link */
    homepage: string | null;
    /** Package ReadMe definition, defined as GitHub-style markdown */
    readme: string | null;
    /** Exporter package icon */
    iconURL: string | null;
    /** Exporter feature tags, such as iOS, React, token, styles, components etc. */
    tags: Array<string>;
    exporterType: "code" | "documentation";
    gitProvider: ExporterProvider;
    /** URL of the repository containing the exporter package */
    gitUrl: string;
    /** Branch of the repository containing the exporter package. If not provided, exporter is located at the default branch */
    gitBranch: string | null;
    /** Root directory in the repository containing the exporter package. If not provided, exporter is located at the root directory */
    gitDirectory: string | null;
    /** If the workspace is owner of an exporter */
    isOwner?: boolean;
    /** Flag that shows if the exporter shouldn't be used for creating new pipelines */
    isDeprecated: boolean;
    /** Message that explains why the exporter is deprecated */
    deprecationNote: string | null;
    /** Id of the exporter that should be used instead of this one, when it's deprecated */
    replacementExporterId: string | null;
    /** Contribution of this exporter to the Supernova system */
    contributes: {
        /** DocumentationLegacy block variants */
        blockVariants: Array<ExporterCustomBlockVariant>;
        /** DocumentationLegacy blocks */
        blocks: Array<ExporterCustomBlock>;
        /** Configuration properties for the v2 exporters */
        properties: Array<ExporterPropertyDefinition>;
        /** Exporter configuration */
        configuration: Array<ExporterConfigurationProperty>;
    };
    constructor(data: ExporterModel);
    get usesConfiguration(): boolean;
}
