/**
 * CoinGecko Node - Version 1
 * Discriminator: resource=coin, operation=market
 */


/** Get prices and market related data for all trading pairs that match the selected currency */
export type CoinGeckoV1CoinMarketParams = {
  resource: 'coin';
  operation: 'market';
/**
 * The first currency in the pair. For BTC:ETH this is BTC. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
 */
    baseCurrency?: string | Expression<string>;
/**
 * Whether to return all results or only up to a given limit
 * @default false
 */
    returnAll?: boolean | Expression<boolean>;
/**
 * Max number of results to return
 * @displayOptions.show { returnAll: [false] }
 * @default 100
 */
    limit?: number | Expression<number>;
/**
 * Options
 * @default {}
 */
    options?: {
    /** Filter results by comma-separated list of coin ID
     */
    ids?: string | Expression<string> | PlaceholderValue;
    /** Filter by coin category
     * @default decentralized_finance_defi
     */
    category?: 'decentralized_finance_defi' | Expression<string>;
    /** Sort results by field
     */
    order?: 'gecko_asc' | 'gecko_desc' | 'id_asc' | 'id_desc' | 'market_cap_asc' | 'market_cap_desc' | 'volume_asc' | 'volume_desc' | Expression<string>;
    /** Whether to include sparkline 7 days data
     * @default false
     */
    sparkline?: boolean | Expression<boolean>;
    /** Include price change percentage for specified times
     * @default []
     */
    price_change_percentage?: Array<'1h' | '24h' | '7d' | '14d' | '30d' | '200d' | '1y'>;
  };
};

export type CoinGeckoV1CoinMarketOutput = {
  ath_date?: string;
  atl_change_percentage?: number;
  atl_date?: string;
  id?: string;
  image?: string;
  last_updated?: string;
  market_cap?: number;
  name?: string;
  symbol?: string;
};

export type CoinGeckoV1CoinMarketNode = {
  type: 'n8n-nodes-base.coinGecko';
  version: 1;
  config: NodeConfig<CoinGeckoV1CoinMarketParams>;
  output?: Items<CoinGeckoV1CoinMarketOutput>;
};