import type { NormaliseRule } from '../normalise-rules.js';
interface ClusterMatchData {
    componentName: string;
    oldServiceName: string;
    newServiceName: string;
    prefix: string;
    /** Map from old operation key to new operation key. */
    opRenames: Map<string, string>;
}
/**
 * Find the longest lowercase prefix shared by `names`, ending strictly
 * before the first uppercase letter (camelCase boundary). Returns the
 * empty string when no such prefix is found.
 */
declare function findCamelPrefix(names: string[]): string;
declare function stripCamelPrefix(name: string, prefix: string): string;
declare function stripPascalPrefix(serviceName: string, prefix: string): string | null;
/**
 * Detect whether the service with `serviceName` is a cluster-cleanup
 * candidate. See file-header doc for the two detection signals.
 */
declare function detectClusterMatch(componentName: string, serviceName: string, serviceBody: Record<string, unknown>): ClusterMatchData | null;
export declare const CLUSTER_MODULE_FUNCTIONS_RULE: NormaliseRule;
export declare const __internal: {
    findCamelPrefix: typeof findCamelPrefix;
    stripCamelPrefix: typeof stripCamelPrefix;
    stripPascalPrefix: typeof stripPascalPrefix;
    detectClusterMatch: typeof detectClusterMatch;
};
export {};
//# sourceMappingURL=cluster-module-functions.d.ts.map