// Component-specific types
export interface EditingCell {
  id: string;
  field: string;
}

export interface AddProviderMappingDialogState {
  exchangeId: string;
  exchangeName: string;
}

export interface DeleteDialogState {
  exchangeId: string;
  exchangeName: string;
  providerMappingCount: number;
}

export interface FormErrors {
  [key: string]: string;
}

// Dialog props interfaces
export interface BaseDialogProps {
  isOpen: boolean;
  onClose: () => void;
}

export interface AddExchangeDialogProps extends BaseDialogProps {
  onCreateExchange: (request: import('./request.types').CreateExchangeRequest) => Promise<void>;
}

export interface AddProviderMappingDialogProps extends BaseDialogProps {
  exchangeId: string;
  exchangeName: string;
  onCreateMapping: (
    request: import('./request.types').CreateProviderMappingRequest
  ) => Promise<unknown>;
}

export interface DeleteExchangeDialogProps extends BaseDialogProps {
  exchangeId: string;
  exchangeName: string;
  providerMappingCount: number;
  onConfirmDelete: (exchangeId: string) => Promise<boolean>;
}
