import { RefByUnique, RefByPrimary } from 'domain-objects';
import { PickOne } from 'type-fns';
import { VisualogicContext } from 'visualogic';
import { StripeApiContext } from '../../domain/constants';
import { DeclaredStripeInvoice } from '../../domain/objects/DeclaredStripeInvoice';
/**
 * .what = requests that the customer be charged for the invoice
 * .what.intent
 *   - attempts to .pay the invoice with the customers payment method
 *   - responds with failure via error or success via updated invoice state
 */
export declare const reqInvoiceCharge: (input: {
    by: PickOne<{
        unique: RefByUnique<typeof DeclaredStripeInvoice>;
        primary: RefByPrimary<typeof DeclaredStripeInvoice>;
    }>;
}, context: StripeApiContext & VisualogicContext) => Promise<import("type-fns").HasMetadata<DeclaredStripeInvoice>>;
