import { DefaultsManager } from './model-manager.js';
export declare class ReplicateClient {
    private client;
    private defaultsManager;
    constructor(apiToken: string);
    /**
     * Get the defaults manager instance
     * @returns The defaults manager
     */
    getDefaultsManager(): DefaultsManager;
    /**
     * Set a default value for any parameter
     * @param option The option name to set
     * @param value The value to set
     */
    setDefault(option: string, value: any): void;
    /**
     * Get the current default value for an option
     * @param option The option name
     * @returns The current default value
     */
    getDefault(option: string): any;
    /**
     * Get all current defaults
     * @returns All current default values
     */
    getAllDefaults(): Record<string, any>;
    /**
     * Get a list of available models with their capabilities
     * @returns Array of available models with details
     */
    getAvailableModels(): Array<{
        id: string;
        name: string;
        description: string;
        capabilities: string[];
    }>;
    /**
     * Get the current default model
     * @returns The current default model ID
     */
    getDefaultModel(): string;
    /**
     * Generate an image using the appropriate Flux model and return it as a buffer
     * @param prompt The text prompt to generate an image from
     * @param options Additional options for the model
     * @param modelId Optional model ID override
     * @returns The image data as a Buffer
     */
    generateImage(prompt: string, options?: any, modelId?: string): Promise<Buffer>;
    /**
     * Process an image with Sharp to ensure it's a valid PNG for Printify
     * @param imageData The image data buffer from Replicate
     * @param outputFormat The desired output format (png, jpeg, webp)
     * @returns A buffer containing the processed image
     */
    processImageForPrintify(imageData: Buffer, outputFormat?: string): Promise<Buffer>;
}
