import type { Octokit } from "@octokit/rest";
import { createGitLabClient } from "@lerna/core";
import { ExecOptions } from "child_process";
export type ReleaseClientType = "gitlab" | "github";
/**
 * `@octokit/rest` v21+ nests plugin types that TypeScript cannot name from an
 * inferred union. Keep the public signature on the exported `Octokit` type.
 */
export type ReleaseClient = Octokit | ReturnType<typeof createGitLabClient>;
export declare function truncateReleaseBody(body: string, type?: ReleaseClientType): string;
export declare function createReleaseClient(type?: ReleaseClientType): ReleaseClient;
export declare function createRelease(client: ReleaseClient, { type, tags, releaseNotes, tagVersionSeparator, }: {
    type?: ReleaseClientType;
    tags: string[];
    tagVersionSeparator: string;
    releaseNotes: {
        name: string;
        notes: string;
    }[];
}, { gitRemote, execOpts }: {
    gitRemote: string;
    execOpts: ExecOptions;
}): Promise<unknown>;
