import { TrmArtifact, TrmPackage } from "../../trmPackage";
import { IActionContext } from "..";
import { AbstractRegistry } from "../../registry";
import { DEVCLASS, TADIR, TARSYSTEM, TR_TARGET, TRNSPACET, TRNSPACETT } from "../../client";
import { TrmManifest, TrmManifestBase } from "../../manifest";
import { Transport } from "../../transport";
import { DotAbapGit } from "../../abapgit";
import { ReleaseType } from "semver";
export interface PublishActionInput {
    contextData?: {
        systemPackages?: TrmPackage[];
        noInquirer?: boolean;
        logTemporaryFolder?: string;
        noStopWarning?: boolean;
    };
    packageData: {
        name: string;
        version?: string;
        inc?: ReleaseType;
        preRelease?: boolean;
        preReleaseIdentifier?: string;
        tags?: string[];
        registry: AbstractRegistry;
        devclass?: DEVCLASS;
        manifest?: TrmManifestBase;
    };
    systemData?: {
        transportTarget?: TR_TARGET;
    };
    publishData?: {
        noDependenciesDetection?: boolean;
        keepLatestReleaseManifestValues?: boolean;
        private?: boolean;
        readme?: string;
        skipCustomizingTransports?: boolean;
        customizingTransports?: string | Transport[];
        noLanguageTransport?: boolean;
    };
}
type WorkflowRuntime = {
    stopWarningShown: boolean;
    trmPackage: {
        package: TrmPackage;
        registry: AbstractRegistry;
        latestReleaseManifest?: TrmManifest;
        releasesInRegistry?: string[];
        manifest: TrmManifest;
        manifestXml?: string;
        artifact?: TrmArtifact;
    };
    systemData: {
        transportTargets: TARSYSTEM[];
        originCustomizing: {
            transports: Transport[];
            description: string;
        }[];
        devcTransport: Transport;
        tadirTransport: Transport;
        langTransport?: Transport;
        custTransports: Transport[];
        releasedTransports: Transport[];
    };
    packageData: {
        tadir: TADIR[];
        namespace?: {
            trnspacet: TRNSPACET;
            trnspacett: TRNSPACETT[];
        };
    };
    abapGitData: {
        dotAbapGit?: DotAbapGit;
        sourceCode?: {
            zip: Buffer;
            ignoredObjects: TADIR[];
        };
    };
};
export type PublishActionOutput = {
    trmPackage: TrmPackage;
    trmArtifact: TrmArtifact;
};
export interface PublishWorkflowContext extends IActionContext {
    rawInput: PublishActionInput;
    runtime?: WorkflowRuntime;
    output?: PublishActionOutput;
}
export declare function publish(inputData: PublishActionInput): Promise<PublishActionOutput>;
export {};
