import type { ReactNode } from "react";
export interface OnboardingProfileData {
    username: string;
    avatarFile?: File;
    avatarPreview?: string;
}
export interface HowItWorksIcons {
    createAccount?: ReactNode;
    linkAccounts?: ReactNode;
    bestPrices?: ReactNode;
    stayInControl?: ReactNode;
}
/** Connection state for a venue card. */
export type ConnectionState = "idle" | "connecting" | "connected" | "error";
export interface OnboardingModalProps {
    /** Whether the onboarding modal is currently open. */
    open: boolean;
    /** Called whenever the onboarding modal open state changes. */
    onOpenChange: (open: boolean) => void;
    /** Called when the profile setup step is submitted. */
    onProfileSubmit?: (data: OnboardingProfileData) => void;
    /** Called when the user clicks "Connect" on the onchain card. Should resolve on success, reject/throw on failure. */
    onConnectOnchain?: () => Promise<void>;
    /** Called when the user submits Kalshi credentials. Should resolve on success, reject/throw on failure. */
    onConnectKalshi?: (credentials: KalshiCredentials) => Promise<void>;
    /** Called after the onboarding flow is fully completed. */
    onComplete?: () => void;
    /** Optional icon overrides for the how-it-works step. */
    howItWorksIcons?: HowItWorksIcons;
    /** Whether the onchain account connection has completed. */
    connectedOnchain?: boolean;
    /** Whether the Kalshi account connection has completed. */
    connectedKalshi?: boolean;
}
export interface KalshiCredentials {
    apiKeyId: string;
    privateKey: string;
}
export interface HowItWorksStepProps {
    /** Called when the user advances from the how-it-works step. */
    onContinue: () => void;
    /** Optional icon overrides for the how-it-works step. */
    icons?: HowItWorksIcons;
}
export interface ProfileSetupStepProps {
    /** Called when the profile setup step is submitted. */
    onContinue: (data: OnboardingProfileData) => void;
}
export interface ConnectAccountsStepProps {
    /** Called when the onchain connection CTA is activated. */
    onConnectOnchain?: () => void;
    /** Called when the Kalshi connection CTA is activated. */
    onConnectKalshi?: () => void;
    /** Called when the user continues past the connection step. */
    onContinue: () => void;
    /** Whether the onchain connection is already complete. */
    connectedOnchain?: boolean;
    /** Whether the Kalshi connection is already complete. */
    connectedKalshi?: boolean;
}
export interface ConnectOnchainModalProps {
    /** Whether the onchain connection modal is currently open. */
    open: boolean;
    /** Called whenever the onchain connection modal open state changes. */
    onOpenChange: (open: boolean) => void;
    /** Called when the onchain connection is confirmed. */
    onConnect: () => Promise<void>;
}
export interface ConnectKalshiModalProps {
    /** Whether the Kalshi connection modal is currently open. */
    open: boolean;
    /** Called whenever the Kalshi connection modal open state changes. */
    onOpenChange: (open: boolean) => void;
    /** Called when the Kalshi credentials are submitted for verification. */
    onVerify: (credentials: KalshiCredentials) => Promise<void>;
}
