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


/** Get current data for a coin */
export type CoinGeckoV1CoinGetParams = {
  resource: 'coin';
  operation: 'get';
/**
 * Search by coin ID or contract address
 * @default coinId
 */
    searchBy?: 'coinId' | 'contractAddress' | Expression<string>;
/**
 * Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
 */
    coinId?: string | Expression<string>;
/**
 * The ID of the platform issuing tokens
 * @displayOptions.show { searchBy: ["contractAddress"] }
 * @default ethereum
 */
    platformId?: 'ethereum' | Expression<string>;
/**
 * Token's contract address
 * @displayOptions.show { searchBy: ["contractAddress"] }
 */
    contractAddress?: string | Expression<string> | PlaceholderValue;
/**
 * Options
 * @default {}
 */
    options?: {
    /** Whether to include community data
     * @default false
     */
    community_data?: boolean | Expression<boolean>;
    /** Whether to include developer data
     * @default false
     */
    developer_data?: boolean | Expression<boolean>;
    /** Whether to include all localized languages in response
     * @default false
     */
    localization?: boolean | Expression<boolean>;
    /** Whether to include market data
     * @default false
     */
    market_data?: boolean | Expression<boolean>;
    /** Whether to include sparkline 7 days data (eg. true, false).
     * @default false
     */
    sparkline?: boolean | Expression<boolean>;
    /** Whether to include tickers data
     * @default false
     */
    tickers?: boolean | Expression<boolean>;
  };
};

export type CoinGeckoV1CoinGetOutput = {
  additional_notices?: Array<string>;
  block_time_in_minutes?: number;
  categories?: Array<string>;
  description?: {
    en?: string;
  };
  id?: string;
  image?: {
    large?: string;
    small?: string;
    thumb?: string;
  };
  links?: {
    chat_url?: Array<string>;
    homepage?: Array<string>;
    official_forum_url?: Array<string>;
    repos_url?: {
      github?: Array<string>;
    };
    twitter_screen_name?: string;
    whitepaper?: string;
  };
  name?: string;
  preview_listing?: boolean;
  symbol?: string;
  watchlist_portfolio_users?: number;
  web_slug?: string;
};

export type CoinGeckoV1CoinGetNode = {
  type: 'n8n-nodes-base.coinGecko';
  version: 1;
  config: NodeConfig<CoinGeckoV1CoinGetParams>;
  output?: Items<CoinGeckoV1CoinGetOutput>;
};