export interface CoinForBarterConfig {
    publicKey: string;
    txRef: string;
    amount: number;
    currency: string;
    redirectUrl?: string;
    customer: string;
    customerPhoneNumber?: string;
    customerFullName?: string;
    callback: (data: CallbackType) => void;
    customizations?: Customization;
    currencies: string[];
}
export interface Customization {
    title?: string;
    description?: string;
    logo?: string;
}
declare type CustomerType = {
    fullName: string;
    email: string;
    phoneNumber: string;
};
export declare enum CloseType {
    Error = "error",
    Success = "success"
}
export declare class CustomException {
    name: string;
    response: {};
    constructor(data: Record<string, any>);
}
export interface BodyType {
    publicKey: string;
    txRef: string;
    amount: number;
    currency: string;
    redirectUrl?: string;
    customer: string;
    customerPhoneNumber?: string;
    customerFullName?: string;
    customizations?: Customization;
}
export declare enum CoinForBarterStatus {
    Success = "success",
    Error = "error"
}
export declare type CallbackType = {
    amount?: number;
    amountReceived?: number;
    currency?: string;
    customer?: CustomerType;
    status: CoinForBarterStatus;
    txRef?: string;
    transactionId?: string;
    baseCurrency?: string;
    baseAmount?: number;
    error?: any;
};
export interface ConfigType extends BodyType {
    onSuccess: (data: CallbackType) => void;
    onError: (data: CallbackType) => void;
}
export interface CoinForBarterButtonProps {
    config: CoinForBarterConfig;
    text?: string;
}
export {};
