import { FailContext, NextRelease, PrepareContext, PublishContext, SuccessContext, VerifyConditionsContext, VerifyReleaseContext } from "semantic-release";
import { PublishOptions } from "jsr";

//#region src/types.d.ts
interface NormalizedPluginConfig {
  cwd: string;
  name: string;
  prepare: {
    versionJsonPaths: string[];
  };
  publish: PublishOptions;
}
interface PluginConfig {
  /**
   * Allow `--allow-dirty` to be passed to `jsr publish`.
   * Defaults to `true`, as usually the version is bumped before publishing.
   * Set to `false` to prevent `--allow-dirty` from being passed.
   */
  allowDirty?: boolean;
  /**
   * Working directory given to `jsr publish`.
   * Defaults to current directory.
   */
  cwd?: string;
  /**
   * Path to package.json.
   * Defaults to `cwd` + `/package.json` if it exists.
   */
  pkgJsonPath?: string;
  /**
   * Additional arguments to pass to `jsr publish`.
   */
  publishArgs?: string[];
}
interface PublishResponse {
  channel?: string;
  name: string;
  url?: string;
}
interface PublishResponseContext {
  nextRelease?: NextRelease;
}
//#endregion
//#region src/command.d.ts
declare function fail(pluginConfig: PluginConfig, context: FailContext): Promise<void>;
declare function prepare(pluginConfig: PluginConfig, context: PrepareContext): Promise<void>;
declare function publish$1(pluginConfig: PluginConfig, context: PublishContext): Promise<boolean | PublishResponse>;
declare function success(pluginConfig: PluginConfig, context: SuccessContext): Promise<void>;
declare function verifyConditions(pluginConfig: PluginConfig, context: VerifyConditionsContext): Promise<void>;
//#endregion
//#region src/utils.d.ts
declare function parseConfig(config: PluginConfig, context?: PrepareContext | PublishContext | VerifyConditionsContext): Promise<NormalizedPluginConfig>;
declare function generatePublishResponse(config: NormalizedPluginConfig, context: PublishResponseContext): PublishResponse;
declare function getTemporaryBinFolder(): string;
declare function publish(config: NormalizedPluginConfig, context: VerifyConditionsContext): Promise<void>;
declare function removeTemporaryBinFolder(): Promise<void>;
declare function updateVersionJson(file: string, context: VerifyReleaseContext): Promise<void>;
//#endregion
export { type NormalizedPluginConfig, type PluginConfig, type PublishResponse, type PublishResponseContext, fail, generatePublishResponse, getTemporaryBinFolder, publish as jsrPublish, parseConfig, prepare, publish$1 as publish, removeTemporaryBinFolder, success, updateVersionJson, verifyConditions };
//# sourceMappingURL=index.d.cts.map