import type { ExperimentClient } from '../experiments/types';
import type { CanvasConfigResponse } from '../types';
/**
 * Partial config as returned by a single variant feature flag.
 * Variant flags may only contain a subset of CanvasConfigResponse fields.
 */
export type VariantFlagValue = Partial<CanvasConfigResponse> & {
    overlays?: unknown[];
};
/**
 * Strategy for resolving multiple active variant configs into one.
 *
 * - "merge" (default): concatenate tiles/actions from all active variants.
 *   Singleton fields (theme, launcher, meta, etc.) take first-defined value.
 * - "first-match": returns the first non-empty variant config (legacy).
 */
export type MergeStrategy = 'merge' | 'first-match';
/**
 * Resolve multiple variant feature flags into a single CanvasConfigResponse.
 *
 * Evaluates each flag key against the experiment client and applies the
 * configured strategy.
 *
 * @param client - Experiment client to evaluate feature flags
 * @param keys - Ordered list of variant flag keys to evaluate
 * @param strategy - Resolution strategy (default: "merge")
 * @returns Resolved config, or null if no flags are active
 */
export declare function resolveVariantConfigs(client: ExperimentClient, keys: string[], strategy?: MergeStrategy): CanvasConfigResponse | null;
