// @generated by FORGE - DO NOT EDIT

export interface AuthResponse {
  access_token: string;
  refresh_token: string;
  user: UserPublic;
}

export interface BinanceTrade {
  symbol: string;
  price: string;
  quantity: string;
  trade_time: number;
  is_buyer_maker: boolean;
}

export interface ConfirmVerificationInput {
  workflow_id: string;
}

export interface DemoStats {
  total_users: number;
  total_trades: number;
  total_webhooks: number;
  computed_at: string;
}

export interface ExportInput {
  format: string;
}

export interface ExportOutput {
  count: number;
  data: string;
  format: string;
}

export interface IssApiResponse {
  iss_position: IssPosition;
  timestamp: number;
  message: string;
}

export interface IssLocation {
  id: string;
  latitude: number;
  longitude: number;
  api_timestamp: string;
  created_at: string;
}

export interface IssPosition {
  latitude: string;
  longitude: string;
}

export interface LoginInput {
  email: string;
  password: string;
}

export interface McpGetUserInput {
  email: string;
}

export interface McpUserInfo {
  id: string;
  email: string;
  name: string;
  role: UserRole;
}

export interface RefreshInput {
  refresh_token: string;
}

export interface RegisterInput {
  email: string;
  name: string;
  password: string;
}

export interface Trade {
  id: string;
  symbol: string;
  price: number;
  quantity: number;
  trade_time: string;
  is_buyer_maker: boolean;
  created_at: string;
}

export interface User {
  id: string;
  email: string;
  name: string;
  role: UserRole;
  created_at: string;
  updated_at: string;
  password_hash?: string;
}

export interface UserPublic {
  id: string;
  email: string;
  name: string;
  role: UserRole;
  created_at: string;
  updated_at: string;
}

export interface VerificationInput {
  account_id: string;
  email: string;
}

export interface VerificationOutput {
  verified: boolean;
  token: string;
}

export interface WebhookEvent {
  id: string;
  idempotency_key: string;
  webhook_name: string;
  processed_at: string;
}

export type Cursor = string;

export interface PageInfo {
  has_next_page: boolean;
  end_cursor?: Cursor;
  total_count?: number;
}

export interface Page<T> {
  items: T[];
  page_info: PageInfo;
}

export interface TokenPair {
  access_token: string;
  refresh_token: string;
}

export type UserRole = "admin" | "member" | "guest";

export type {
  ForgeError,
  QueryResult,
  SubscriptionResult,
} from "@forge-rs/svelte";
