export type GetApiV1FlowTradesArgs = {session_date?: string | undefined, kind?: ('order' | 'package' | 'all') | undefined, tickers?: string | undefined, contract_symbols?: string | undefined, expirations?: string | undefined, rights?: string | undefined, sides?: string | undefined, strategies?: string | undefined, min_premium_usd?: number | undefined, max_premium_usd?: number | undefined, min_contracts?: number | undefined, max_contracts?: number | undefined, sort_by?: ('occurredAt' | 'premiumCents' | 'contracts') | undefined, direction?: ('asc' | 'desc') | undefined, limit?: number | undefined, cursor?: string | undefined}; export type GetApiV1FlowTradesOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Filtered Flow aggregate history; by default every aggregate (orders and packages, no premium floor), limit 25. ET dates use YYYY-MM-DD. * * GET /v1/flow/trades */ export const getApiV1FlowTrades = async (args: GetApiV1FlowTradesArgs, options?: GetApiV1FlowTradesOptions) => { const {baseUrl = "https://api.yehangshe.com", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() if (args.session_date != null) query.append("session_date", String(args.session_date)) if (args.kind != null) query.append("kind", String(args.kind)) if (args.tickers != null) query.append("tickers", String(args.tickers)) if (args.contract_symbols != null) query.append("contract_symbols", String(args.contract_symbols)) if (args.expirations != null) query.append("expirations", String(args.expirations)) if (args.rights != null) query.append("rights", String(args.rights)) if (args.sides != null) query.append("sides", String(args.sides)) if (args.strategies != null) query.append("strategies", String(args.strategies)) if (args.min_premium_usd != null) query.append("min_premium_usd", String(args.min_premium_usd)) if (args.max_premium_usd != null) query.append("max_premium_usd", String(args.max_premium_usd)) if (args.min_contracts != null) query.append("min_contracts", String(args.min_contracts)) if (args.max_contracts != null) query.append("max_contracts", String(args.max_contracts)) if (args.sort_by != null) query.append("sort_by", String(args.sort_by)) if (args.direction != null) query.append("direction", String(args.direction)) if (args.limit != null) query.append("limit", String(args.limit)) if (args.cursor != null) query.append("cursor", String(args.cursor)) if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/flow/trades${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };