import { z } from 'zod';
/**
 * Validates method arguments using a Zod schema
 * @param schema Zod schema for validation
 */
export declare function ValidateArgs(schema: z.ZodType): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
/**
 * Marks a method as deprecated
 * @param message Optional deprecation message
 */
export declare function Deprecate(message?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
/**
 * Checks for required permissions before executing a method
 * @param permissions Required permissions
 */
export declare function GuardSync(GuardFn: (...args: any[]) => boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
export declare function GuardAsync(GuardFn: (...args: any[]) => Promise<boolean>): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
/**
 * Implements rate limiting for a method
 * @param options Rate limit configuration
 */
export declare function RateLimited(options: {
    limit: number;
    window: number;
}): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
