import { default as React } from 'react';
import { ID, SyntheticAiCfoAnswer, User } from '@zeniai/client-epic-state';
/**
 * Resolved tile data for a newly-created card. Returned by the host
 * screen's `resolveCardTile` callback to translate a card id into the
 * presentation fields rendered inside the cards preview table.
 *
 * Returning `undefined` is allowed — the renderer falls back to a row
 * with the id as the card name (so the bubble still renders meaningfully
 * if the entity hasn't landed in Redux yet, e.g. brief race between
 * epic success and selector subscription).
 */
export interface ResolvedSyntheticAiCfoCard {
    cardName: string;
    ownerName: string;
    recommendedLimitFormatted: string;
    owner?: User;
}
/**
 * Resolved tile data for a newly-created card policy template. Returned
 * by the host screen's `resolvePolicyTile` callback. Mirrors the data the
 * real card policy list row consumes (minus the created date / mode
 * badge / actions, which are deliberately omitted from the AI CFO
 * success bubble).
 */
export interface ResolvedSyntheticAiCfoPolicy {
    cardsCount: number;
    categoryRestrictionsCount: number;
    description: string;
    name: string;
    vendorRestrictionsCount: number;
}
export interface SyntheticAiCfoAnswerViewProps {
    answer: SyntheticAiCfoAnswer;
    /**
     * Look up a newly-created card's preview tile data by `cardId`. Required
     * for `kind: 'created_cards'`; ignored for the other kinds.
     */
    resolveCardTile?: (cardId: ID) => ResolvedSyntheticAiCfoCard | undefined;
    /**
     * Look up a newly-created card policy template's preview tile data by
     * `templateId`. Required for `kind: 'created_policy'`; ignored for the
     * other kinds.
     */
    resolvePolicyTile?: (templateId: ID) => ResolvedSyntheticAiCfoPolicy | undefined;
}
/**
 * Renders a single client-synthesized AI CFO answer bubble. Dispatches on
 * `answer.kind`:
 *
 *   - `creating_cards` / `creating_policy` → shimmer + loading copy.
 *   - `created_cards` / `created_policy`   → headline + preview tiles,
 *     resolved per entity via the caller-supplied resolvers. Cards
 *     render as a single table (Card / Owner / Recommended Limit);
 *     policies render as a vertical stack of list-row-style tiles.
 *
 * Singular / plural copy is picked from `appLocale` based on
 * `answer.entityIds.length`.
 */
export declare const SyntheticAiCfoAnswerView: React.FC<SyntheticAiCfoAnswerViewProps>;
