import type { Dispatch, ForwardedRef, Ref, JSX } from "react"; import PropTypes, { type InferProps } from "prop-types"; import type { BaseError } from "./errors"; export declare const BC: { id: PropTypes.Requireable; className: PropTypes.Requireable; style: PropTypes.Requireable; name: PropTypes.Requireable; }; export declare const PTLoader: PropTypes.Requireable>; export declare const BaseSelectComponentPropTypes: { children: PropTypes.Requireable<(...args: any[]) => any>; options: PropTypes.Validator; value: PropTypes.Validator>>; selected: PropTypes.Requireable; }>>[]>; placeholder: PropTypes.Requireable; value: PropTypes.Validator>>; }>>; value: PropTypes.Requireable; name: PropTypes.Validator; }; export type SelectPlaceholder = Option; type BaseSelectChildrenComponentProps = Omit; export interface Option { label: string; value: string | number; disabled?: boolean; } export interface BaseSelectComponentProps { children?: (props: BaseSelectChildrenComponentProps) => JSX.Element; options: Option[]; placeholder?: Option; value?: string; className?: string; required?: boolean; name: string; onChange?: (event: React.ChangeEvent) => void; } type BaseInputChildrenComponentProps = Omit & { handleChange: (event: React.ChangeEvent) => void; parentRef: ForwardedRef; }; export interface BaseInputComponentProps { ref?: Ref; children?: (props: BaseInputChildrenComponentProps) => JSX.Element; name: string; onChange?: (event: React.ChangeEvent) => void; placeholder?: string; } export type GiftCardInputName = "balanceCents" | "balanceMaxCents" | "singleUse" | "rechargeable" | "imageUrl" | "expiresAt" | "referenceOrigin" | "email" | "firstName" | "lastName" | "reference"; export type AddressInputName = "billing_address_city" | "billing_address_company" | "billing_address_first_name" | "billing_address_email" | "billing_address_last_name" | "billing_address_line_1" | "billing_address_line_2" | "billing_address_phone" | "billing_address_state_code" | "billing_address_zip_code" | "billing_address_billing_info" | "billing_address_save_to_customer_book" | `billing_address_${`metadata_${string}`}` | "shipping_address_city" | "shipping_address_company" | "shipping_address_email" | "shipping_address_first_name" | "shipping_address_last_name" | "shipping_address_line_1" | "shipping_address_line_2" | "shipping_address_phone" | "shipping_address_state_code" | "shipping_address_zip_code" | "shipping_address_save_to_customer_book" | "shipping_address_billing_info" | `shipping_address_${`metadata_${string}`}`; export type AddressCountrySelectName = "billing_address_country_code" | "shipping_address_country_code"; export type AddressStateSelectName = "billing_address_state_code" | "shipping_address_state_code"; export type LoaderType = string | JSX.Element; export declare const BMObject: PropTypes.Requireable<{ [x: string]: string | null | undefined; }>; export type BaseMetadataObject = Record; export type TimeFormat = "days" | "hours"; export type BaseComponent = InferProps; export interface BaseAction> { type: A; payload: P; } export interface BaseState { [key: string]: any; errors?: BaseError[]; } export type BaseActionType = T[]; export type BFSetStateContainer =

(param: P) => void; export type BaseReducer = (state: S, action: A, type: T) => S; export type BaseUnsetState = (dispatch: Dispatch) => void; export type BaseMetadata = Record; export type BaseFormatPrice = "formatted" | "cents" | "float"; export declare const baseOrderPricePropTypes: { id: PropTypes.Requireable; className: PropTypes.Requireable; style: PropTypes.Requireable; name: PropTypes.Requireable; base: PropTypes.Validator; type: PropTypes.Validator; children: PropTypes.Requireable<(...args: any[]) => any>; format: PropTypes.Requireable; }; export declare const baseOrderComponentPricePropTypes: { id: PropTypes.Requireable; className: PropTypes.Requireable; style: PropTypes.Requireable; name: PropTypes.Requireable; children: PropTypes.Requireable<(...args: any[]) => any>; format: PropTypes.Requireable; }; export type BasePriceType = "total" | "option" | "unit"; export type BaseSelectorType = "select" | "radio"; export type BaseAmountComponentChildren = Omit; export interface BaseAmountComponent extends Omit { children?: ChildrenFunction; format?: BaseFormatPrice; price?: string; scheme?: string; priceCents?: number; labelFree?: string; } export type ChildrenFunction

> = (props: P) => JSX.Element | null; export type ExcludeTag = Exclude; export type ExtractTag = Extract; export type ConditionalElement = ({ attribute: Extract; tagElement?: ExtractTag<"img">; } & JSX.IntrinsicElements["img"]) | ({ attribute: Exclude; tagElement?: ExcludeTag<"img">; } & Omit], "children">); export {};