import { ObjectValues } from '@crossmint/common-sdk-base';
import { PaymentMethodAgenticEnrollmentVerificationConfig } from './PaymentMethodAgenticEnrollment.cjs';

declare const OrderIntentPhase: {
    REQUIRES_PAYMENT: string;
    REQUIRES_VERIFICATION: string;
    ACTIVE: string;
    EXPIRED: string;
};
type OrderIntentPhase = ObjectValues<typeof OrderIntentPhase>;
interface OrderIntentBase {
    orderIntentId: string;
    mandates: any[];
    payment: {
        paymentMethodId: string;
    };
}
interface OrderIntentWithVerification extends OrderIntentBase {
    phase: "requires-verification";
    verificationConfig: OrderIntentVerificationConfig;
}
interface OrderIntentVerificationConfig extends PaymentMethodAgenticEnrollmentVerificationConfig {
    agentId: string;
    instructionId: string;
}
interface OrderIntentWithoutVerification extends OrderIntentBase {
    phase: Exclude<OrderIntentPhase, "requires-verification">;
}
type OrderIntent = OrderIntentWithVerification | OrderIntentWithoutVerification;

export { type OrderIntent, OrderIntentPhase, type OrderIntentVerificationConfig, type OrderIntentWithVerification, type OrderIntentWithoutVerification };
