import { EmptyStateMetadata } from './types';
/**
 * Opciones del helper. Los strings son requeridos para mantener el
 * componente i18n-agnóstico — la página los resuelve (con su namespace) y los
 * pasa ya traducidos. El helper solo decide la VARIANTE y compone los props.
 */
export interface CreateErrorStateOpts {
    /**
     * Título a mostrar. Convención: la página lo resuelve por escenario:
     *  - red caída     → `t('offlineTitle')`
     *  - error backend → `t('errorTitle')`
     *
     * Si pasás un solo string, se usa en ambas variantes. Si pasás el objeto,
     * el helper elige según `isNetwork` del error interpretado.
     */
    title: string | {
        offline: string;
        error: string;
    };
    /** Descripción a mostrar (típicamente el `message` del backend en español). */
    description?: string | {
        offline: string;
        error: string;
    };
    /** Label del botón CTA (típicamente `t('retry')`). Si se omite, no se muestra botón. */
    retryLabel?: string;
    /** Handler invocado al click de retry. Requerido si `retryLabel` está. */
    onRetry?: () => void | Promise<void>;
    /** `true` mientras el retry está corriendo — el botón pasa a WORKING. */
    retrying?: boolean;
}
/**
 * Convierte un error capturado en `EmptyStateMetadata` listo para
 * `<val-empty-state>`. Decide la variante (`offline` vs `error`) según
 * `interpretError(err).isNetwork`.
 *
 * Uso típico en una page:
 *
 * ```ts
 * readonly errorState = computed(() => {
 *   const err = this.loadError();
 *   if (!err) return null;
 *   return createErrorStateProps(err, {
 *     title: { offline: this.t('offlineTitle'), error: this.t('errorTitle') },
 *     description: { offline: this.t('offlineHint'), error: interpretError(err).message },
 *     retryLabel: this.t('retry'),
 *     onRetry: () => this.reload(),
 *     retrying: this.reloading(),
 *   });
 * });
 * ```
 *
 * En el template:
 *
 * ```html
 * @if (errorState(); as e) {
 *   <val-empty-state [props]="e" />
 * }
 * ```
 *
 * Para escenarios SIN error (lista vacía), construir `EmptyStateMetadata`
 * manualmente con `variant: 'empty'` — no es lo que este helper resuelve.
 */
export declare function createErrorStateProps(err: unknown, opts: CreateErrorStateOpts): EmptyStateMetadata;
