export interface PublishedPackage { name: string; version: string; } export interface PublishedPackageWithReleaseNotes extends PublishedPackage { releaseNotes: string; tagMessage: string; } export interface LoggerLike { info: (...args: unknown[]) => void; warn: (...args: unknown[]) => void; } export interface GitRunner { hasLocalTag: (tagName: string) => boolean; hasRemoteTag: (remote: string, tagName: string) => boolean; createTagAtHead: (tagName: string, message?: string) => void; pushTag: (remote: string, tagName: string) => void; } export interface GithubClient { hasReleaseByTag: (params: { owner: string; repo: string; tagName: string; }) => Promise; createRelease: (params: { owner: string; repo: string; tagName: string; title: string; body: string; makeLatest: 'false' | 'legacy' | 'true'; }) => Promise<'created' | 'skipped'>; } export declare const buildPackageTagName: (packageName: string, version: string) => string; export declare const ensureGitTag: ({ git, tagName, tagMessage, logger, }: { git: GitRunner; tagName: string; tagMessage?: string; logger?: LoggerLike; }) => "created" | "skipped"; export declare const ensureGithubRelease: ({ github, owner, repo, tagName, releaseNotes, logger, }: { github: GithubClient; owner: string; repo: string; tagName: string; releaseNotes: string; logger?: LoggerLike; }) => Promise<"created" | "skipped">; export declare const createGithubArtifactsForPublishedPackages: ({ publishedPackages, git, github, owner, repo, logger, }: { publishedPackages: PublishedPackageWithReleaseNotes[]; git: GitRunner; github: GithubClient; owner: string; repo: string; logger?: LoggerLike; }) => Promise; //# sourceMappingURL=github-releases.d.ts.map