import { EmptyObject } from '../../system.cjs';
import { Blockchain } from '@crossmint/common-sdk-base';
import { CrossmintInternalEvents } from './events.cjs';

interface IncomingInternalEventMap {
    [CrossmintInternalEvents.UI_HEIGHT_CHANGED]: {
        height: number;
    };
    [CrossmintInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION]: {
        serializedTransaction: string;
    };
    [CrossmintInternalEvents.CRYPTO_CHAIN_SWITCH]: {
        chain: Blockchain;
    };
}
interface OutgoingInternalEventMap {
    [CrossmintInternalEvents.PARAMS_UPDATE]: any;
    [CrossmintInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED]: {
        txId: string;
    };
    [CrossmintInternalEvents.CRYPTO_PAYMENT_USER_REJECTED]: EmptyObject;
}
type CrossmintInternalEventMap = IncomingInternalEventMap & OutgoingInternalEventMap;

export type { CrossmintInternalEventMap };
