import { Checkout, WrappedBrowserProvider } from '@imtbl/checkout-sdk';
import { Passport } from '@imtbl/passport';
export interface CommerceState {
    checkout: Checkout | undefined;
    provider: WrappedBrowserProvider | undefined;
    passport: Passport | undefined;
}
export declare const initialCommerceState: CommerceState;
export interface CommerceContextState {
    commerceState: CommerceState;
    commerceDispatch: React.Dispatch<CommerceAction>;
}
export interface CommerceAction {
    payload: ActionPayload;
}
type ActionPayload = SetCheckoutPayload | SetProviderPayload | SetPassportPayload;
export declare enum CommerceActions {
    SET_CHECKOUT = "SET_CHECKOUT",
    SET_PROVIDER = "SET_PROVIDER",
    SET_PASSPORT = "SET_PASSPORT"
}
export interface SetCheckoutPayload {
    type: CommerceActions.SET_CHECKOUT;
    checkout: Checkout;
}
export interface SetProviderPayload {
    type: CommerceActions.SET_PROVIDER;
    provider: WrappedBrowserProvider | undefined;
}
export interface SetPassportPayload {
    type: CommerceActions.SET_PASSPORT;
    passport: Passport | undefined;
}
export declare const CommerceContext: import("react").Context<CommerceContextState>;
export type Reducer<S, A> = (prevState: S, action: A) => S;
export declare const commerceReducer: Reducer<CommerceState, CommerceAction>;
export {};
