import { BankAccount, DonationActionResult, DonationMethod } from './types';
import * as i0 from "@angular/core";
/**
 * `DonationService`
 *
 * Servicio cross-app para el feature de aportes voluntarios (Support).
 * Patrón factory: cada app llama `provideValtechDonations(...)` y este
 * servicio expone solo los métodos habilitados.
 *
 * **Fase 0 (placeholder)** — abre links externos + expone datos de config.
 * Sin backend. Fases futuras: rewarded ads reales, webhook de café,
 * registro de intents para una página de transparencia.
 *
 * @example
 * ```typescript
 * private donations = inject(DonationService);
 *
 * methods = this.donations.enabledMethods();  // ['coffee', 'bank']
 * onCoffee() { this.donations.openCoffee(); }
 * accounts = this.donations.bankAccounts();
 * ```
 */
export declare class DonationService {
    private readonly config;
    /** Último intent registrado — útil para tests / debugging / UI feedback. */
    private readonly _lastIntent;
    readonly lastIntent: import("@angular/core").Signal<DonationMethod>;
    /** Métodos habilitados por la app, en orden de config. */
    readonly enabledMethods: import("@angular/core").Signal<DonationMethod[]>;
    /** `true` si el método está habilitado en la config de la app. */
    isEnabled(method: DonationMethod): boolean;
    /** Cuentas bancarias configuradas (vacío si `bank` no está habilitado). */
    bankAccounts(): BankAccount[];
    /** Cuentas filtradas por país ISO — para apps multi-mercado. */
    bankAccountsByCountry(country: string): BankAccount[];
    /**
     * Abre el checkout de "café" (Buy Me a Coffee / Ko-fi) en una pestaña nueva.
     * El proveedor es el merchant of record — Valtech no procesa el pago.
     */
    openCoffee(): DonationActionResult;
    /**
     * Muestra un anuncio rewarded (opt-in). **Fase 0: no implementado** —
     * placeholder hasta integrar el plugin de ads (AdMob/AdSense) + la
     * categoría de consentimiento. Retorna `not-supported`.
     */
    showRewardedAd(): Promise<DonationActionResult>;
    /**
     * Registra la intención de aporte. **Fase 0: solo estado local.**
     * Fase 4 — POST a un endpoint para una página de transparencia.
     */
    recordIntent(method: DonationMethod): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DonationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DonationService>;
}
