/**
 * CLIProxy Variant Service
 *
 * Handles CRUD operations for CLIProxy variant profiles.
 * Supports both unified config (config.yaml) and legacy JSON format.
 */
import { CLIProxyProfileName } from '../../auth/profile-detector';
import { CompositeTierConfig } from '../../config/unified-config-types';
import type { TargetType } from '../../targets/target-adapter';
import { VariantConfig } from './variant-config-adapter';
export type { VariantConfig } from './variant-config-adapter';
/** Result of variant operations */
export interface VariantOperationResult {
    success: boolean;
    error?: string;
    variant?: VariantConfig;
    settingsPath?: string;
}
/**
 * Validate CLIProxy profile name
 */
export declare function validateProfileName(name: string): string | null;
/**
 * Validate provider/backend compatibility
 * Returns an error message if a provider requires Plus while local CLIProxy is
 * configured for the default original backend.
 */
export declare function validateProviderBackend(provider: CLIProxyProfileName): string | null;
/**
 * Check if CLIProxy variant profile exists
 */
export declare function variantExists(name: string): boolean;
/**
 * List all CLIProxy variants
 */
export declare function listVariants(): Record<string, VariantConfig>;
/**
 * Create a new CLIProxy variant
 */
export declare function createVariant(name: string, provider: CLIProxyProfileName, model: string, account?: string, target?: TargetType): VariantOperationResult;
/**
 * Remove a CLIProxy variant
 */
export declare function removeVariant(name: string): VariantOperationResult;
/** Update options for variant */
export interface UpdateVariantOptions {
    provider?: CLIProxyProfileName;
    account?: string;
    model?: string;
    target?: TargetType;
}
/**
 * Update an existing CLIProxy variant
 */
export declare function updateVariant(name: string, updates: UpdateVariantOptions): VariantOperationResult;
/** Composite variant creation options */
export interface CreateCompositeVariantOptions {
    name: string;
    defaultTier: 'opus' | 'sonnet' | 'haiku';
    target?: TargetType;
    tiers: {
        opus: CompositeTierConfig;
        sonnet: CompositeTierConfig;
        haiku: CompositeTierConfig;
    };
}
/**
 * Create a new composite CLIProxy variant.
 * Mixes different providers per tier using CLIProxyAPI root endpoints.
 */
export declare function createCompositeVariant(options: CreateCompositeVariantOptions): VariantOperationResult;
/** Update options for composite variant */
export interface UpdateCompositeVariantOptions {
    defaultTier?: 'opus' | 'sonnet' | 'haiku';
    tiers?: Partial<Record<'opus' | 'sonnet' | 'haiku', CompositeTierConfig>>;
    target?: TargetType;
}
/**
 * Update an existing composite CLIProxy variant.
 * Merges changes with existing config and regenerates settings file.
 */
export declare function updateCompositeVariant(name: string, updates: UpdateCompositeVariantOptions): VariantOperationResult;
//# sourceMappingURL=variant-service.d.ts.map