import { SaleToAcquirerData } from "./saleToAcquirerData";
/**
 * Parses and serializes {@link SaleToAcquirerData} objects from/to their wire formats.
 *
 * Supports two formats:
 * - Base64-encoded JSON: a JSON object encoded as a Base64 string.
 * - Key-value pairs: form-encoded pairs using `&` as separator
 *   (e.g. `shopperEmail=foo@bar.com&tenderOption=AskGratuity`).
 */
/**
 * Parses a raw `SaleToAcquirerData` string, auto-detecting the format.
 *
 * - If the string is valid Base64 and decodes to a JSON object, it is parsed as JSON.
 * - Otherwise it is parsed as form-encoded key-value pairs.
 *
 * @param raw The raw `SaleToAcquirerData` string.
 * @returns Parsed {@link SaleToAcquirerData}.
 */
export declare function parse(raw: string): SaleToAcquirerData;
/**
 * Decodes a Base64-encoded JSON string into a {@link SaleToAcquirerData} object.
 *
 * @param base64 Base64-encoded JSON string.
 * @returns Decoded {@link SaleToAcquirerData}.
 */
export declare function fromBase64(base64: string): SaleToAcquirerData;
/**
 * Parses a form-encoded key-value pair string (e.g.
 * `shopperEmail=foo@bar.com&tenderOption=AskGratuity`) into a {@link SaleToAcquirerData} object.
 * Metadata fields use dotted notation: `metadata.key=value`.
 *
 * @param keyValuePairs Form-encoded key-value string using `&` as separator.
 * @returns Parsed {@link SaleToAcquirerData}.
 */
export declare function fromKeyValuePairs(keyValuePairs: string): SaleToAcquirerData;
/**
 * Serializes a {@link SaleToAcquirerData} object to a JSON string.
 *
 * @param data The object to serialize.
 * @returns JSON string representation.
 */
export declare function toJson(data: SaleToAcquirerData): string;
/**
 * Encodes a {@link SaleToAcquirerData} object to a Base64-encoded JSON string.
 *
 * @param data The object to encode.
 * @returns Base64-encoded JSON representation.
 */
export declare function toBase64(data: SaleToAcquirerData): string;
