import type { FullInteractionTypesKey } from '@frak-labs/core-sdk';
import { JSX } from 'preact';

/**
 * Button to open wallet modal
 *
 * @param args
 * @returns The wallet button with `<button>` tag
 *
 * @group components
 *
 * @example
 * Basic usage:
 * ```html
 * <frak-button-wallet></frak-button-wallet>
 * ```
 *
 * @example
 * Using a custom class:
 * ```html
 * <frak-button-wallet classname="button button-primary"></frak-button-wallet>
 * ```
 *
 * @example
 * Using reward information:
 * ```html
 * <frak-button-wallet use-reward></frak-button-wallet>
 * ```
 *
 * @example
 * Using reward information for specific reward:
 * ```html
 * <frak-button-wallet use-reward target-interaction="retail.customerMeeting"></frak-button-wallet>
 * ```
 *
 * @see {@link @frak-labs/core-sdk!actions.modalBuilder | `modalBuilder()`} for more info about the modal display
 * @see {@link @frak-labs/core-sdk!actions.getProductInformation | `getProductInformation()`} for more info about the estimated reward fetching
 */
export declare function ButtonWallet({ classname, useReward: rawUseReward, targetInteraction, }: ButtonWalletProps): JSX.Element;

export declare interface ButtonWalletElement extends HTMLElement, ButtonWalletProps {
}

/**
 * The props type for {@link ButtonWallet}.
 * @inline
 */
declare type ButtonWalletProps = {
    /**
     * Classname to apply to the button
     */
    classname?: string;
    /**
     * Do we display the reward on the button?
     * @defaultValue `false`
     */
    useReward?: boolean;
    /**
     * Target interaction behind this sharing action (will be used to get the right reward to display)
     */
    targetInteraction?: FullInteractionTypesKey;
};

export { }
