/**
 * Deprecation Tracking
 *
 * Tracks deprecated features with sunset dates and replacement guidance.
 * Provides warnings and compatibility checking.
 *
 * @packageDocumentation
 */
export interface Deprecation {
    /** Feature identifier */
    feature: string;
    /** Version when deprecated */
    deprecatedIn: string;
    /** Version when removed (if known) */
    removedIn?: string;
    /** Replacement feature/approach */
    replacement?: string;
    /** Deprecation message */
    message: string;
    /** Documentation link */
    link?: string;
    /** Whether warnings have been logged */
    warned?: boolean;
}
export interface DeprecationRegistry {
    /** Register a deprecation */
    register(deprecation: Deprecation): void;
    /** Check if a feature is deprecated */
    isDeprecated(feature: string, currentVersion?: string): boolean;
    /** Check if a feature is removed */
    isRemoved(feature: string, currentVersion?: string): boolean;
    /** Get deprecation info */
    get(feature: string): Deprecation | undefined;
    /** Get all deprecations */
    getAll(): Deprecation[];
    /** Warn about a deprecated feature (logs once) */
    warn(feature: string): void;
    /** Check feature and throw if removed */
    check(feature: string, currentVersion?: string): void;
}
export declare function createDeprecationRegistry(currentVersion: string): DeprecationRegistry;
export declare function getDeprecationRegistry(): DeprecationRegistry;
/**
 * Decorator to mark a function as deprecated
 */
export declare function deprecated(options: {
    message: string;
    replacement?: string;
    since?: string;
    until?: string;
}): MethodDecorator;
export declare const VORION_DEPRECATIONS: Deprecation[];
/**
 * Initialize deprecation registry with pre-defined deprecations
 */
export declare function initDeprecations(currentVersion: string): DeprecationRegistry;
/**
 * Check API version compatibility
 */
export declare function checkApiCompatibility(clientVersion: string, serverVersion: string, deprecations: DeprecationRegistry): {
    compatible: boolean;
    warnings: string[];
    errors: string[];
};
//# sourceMappingURL=deprecation.d.ts.map