/**
 * Compatibility is decided by comparing the connected TouchDesigner
 * component's API version against the API version this release ships with
 * (`mcpCompatibility.expectedApiVersion`), bounded below by
 * `mcpCompatibility.minApiVersion`.
 *
 * The npm package version is deliberately NOT part of the decision: the
 * package version and the API version are independent axes, so a package
 * major bump alone must never invalidate deployed components.
 */
export declare const COMPATIBILITY_POLICY_TYPES: {
    readonly BELOW_MIN_VERSION: "belowMinVersion";
    readonly COMPATIBLE: "compatible";
    readonly COMPONENT_NEWER: "componentNewer";
    readonly COMPONENT_OUTDATED: "componentOutdated";
    readonly NO_VERSION: "noVersion";
    readonly SERVER_OUTDATED: "serverOutdated";
};
export declare const COMPATIBILITY_POLICY_ERROR_LEVELS: {
    readonly ALLOW: "info";
    readonly ERROR: "error";
    readonly WARNING: "warning";
};
export type CompatibilityPolicyType = (typeof COMPATIBILITY_POLICY_TYPES)[keyof typeof COMPATIBILITY_POLICY_TYPES];
export type CompatibilityPolicyErrorLevel = (typeof COMPATIBILITY_POLICY_ERROR_LEVELS)[keyof typeof COMPATIBILITY_POLICY_ERROR_LEVELS];
/**
 * Arguments shared by every compatibility message generator
 */
export interface CompatibilityMessageArgs {
    apiVersion: string;
    expectedApiVersion: string;
    mcpVersion: string;
    minRequired: string;
}
export declare const getCompatibilityPolicyType: (params: {
    apiVersion: string;
    expectedApiVersion: string;
}) => CompatibilityPolicyType;
export declare const getCompatibilityPolicy: (type: CompatibilityPolicyType) => {
    readonly compatible: false;
    readonly level: "error";
    readonly message: typeof generateNoVersionMessage;
} | {
    readonly compatible: false;
    readonly level: "error";
    readonly message: typeof generateMinVersionMessage;
} | {
    readonly compatible: false;
    readonly level: "error";
    readonly message: typeof generateServerOutdatedMessage;
} | {
    readonly compatible: true;
    readonly level: "warning";
    readonly message: typeof generateComponentOutdatedMessage;
} | {
    readonly compatible: true;
    readonly level: "warning";
    readonly message: typeof generateComponentNewerMessage;
} | {
    readonly compatible: true;
    readonly level: "info";
    readonly message: typeof generateFullyCompatibleMessage;
};
/**
 * Generate error message for unknown version information
 */
export declare function generateNoVersionMessage(args: CompatibilityMessageArgs): string;
/**
 * Generate error message when API version is below minimum compatible version
 */
export declare function generateMinVersionMessage(args: CompatibilityMessageArgs): string;
/**
 * Generate error message when the component's API generation is newer than
 * this MCP server release supports
 */
export declare function generateServerOutdatedMessage(args: CompatibilityMessageArgs): string;
/**
 * Generate warning message when the component is older than the API version
 * this release ships with
 */
export declare function generateComponentOutdatedMessage(args: CompatibilityMessageArgs): string;
/**
 * Generate warning message when the component is newer than the API version
 * this release ships with (same generation)
 */
export declare function generateComponentNewerMessage(args: CompatibilityMessageArgs): string;
/**
 * Generate info message when versions are fully compatible
 */
export declare function generateFullyCompatibleMessage(args: CompatibilityMessageArgs): string;
