import { Command } from 'commander'; export interface VersioningExtension { name: string; description: string; version: string; register: (program: Command, config: any) => void | Promise; hooks?: ExtensionHooks; } export interface ExtensionHooks { preVersion?: (type: string, options: any) => void | Promise; postVersion?: (type: string, version: string, options: any) => void | Promise; preRelease?: (version: string, options: any) => void | Promise; postRelease?: (version: string, options: any) => void | Promise; preChangelog?: (options: any) => void | Promise; postChangelog?: (options: any) => void | Promise; preSync?: (options: any) => void | Promise; postSync?: (options: any) => void | Promise; } export interface ExtensionContext { config: any; versionManager?: any; changelogManager?: any; syncManager?: any; releaseManager?: any; hooks: ExtensionHooks[]; loadedExtensions: string[]; } export declare function getExtensionContext(): ExtensionContext | null; export declare function initializeExtensionContext(config: any): Promise; export declare function runExtensionHooks(hookName: keyof ExtensionHooks, ...args: any[]): Promise; export declare function loadExtensions(program: Command): Promise; export declare function createExtensionContext(config: any): ExtensionContext; //# sourceMappingURL=extensions.d.ts.map