import type { ProductWith, VariantDetail } from '@scayle/storefront-api';
import type { RpcHandler } from '../../types';
/**
 * Parameters for fetching variants.
 */
export interface FetchVariantsParams {
    /**
     * Array of variant IDs.
     */
    ids: number[];
    /**
     * Include related data for the variant.
     */
    include?: ProductWith;
    /**
     * Price promotion key.
     */
    pricePromotionKey?: string;
}
/**
 * Retrieves variant details by their IDs.
 *
 * This function uses the Storefront cache (`cached()`) with a `getByIds-variants` key prefix to improve performance.
 * Cached entries are returned if found; otherwise, data is fetched and cached.
 *
 * @param params Parameters for fetching the variants.
 * @param params.ids Array of variant IDs.
 * @param params.include Include related data for the variant. Defaults to `defaultWith`.
 * @param params.pricePromotionKey Price promotion key. Defaults to 'default'.
 * @param context The RPC context.
 *
 * @returns A Promise that resolves to an array of `VariantDetail` objects.
 *
 * @throws Will throw an error if the SAPI request fails.
 */
export declare const getVariantById: RpcHandler<FetchVariantsParams, VariantDetail[]>;
