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.
 *
 * Currently: "first-match" — returns the first non-empty variant config.
 * Future: "merge" — concatenate tiles/actions/overlays from all variants.
 */
export type MergeStrategy = 'first-match';
/**
 * Resolve multiple variant feature flags into a single CanvasConfigResponse.
 *
 * Evaluates each flag key against the experiment client and applies the
 * configured strategy. Currently uses "first-match": the first flag that
 * returns a non-empty config wins.
 *
 * @param client - Experiment client to evaluate feature flags
 * @param keys - Ordered list of variant flag keys to evaluate
 * @param _strategy - Resolution strategy (reserved for future use)
 * @returns Resolved config, or null if no flags are active
 */
export declare function resolveVariantConfigs(client: ExperimentClient, keys: string[], _strategy?: MergeStrategy): CanvasConfigResponse | null;
