/**
 * QuestDB Node - Version 1
 * Get, add and update data in QuestDB
 */


export interface QuestDbV1Params {
  operation?: 'executeQuery' | 'insert';
/**
 * The SQL query to execute. You can use n8n expressions or $1 and $2 in conjunction with query parameters.
 * @displayOptions.show { operation: ["executeQuery"] }
 */
    query?: string;
/**
 * Name of the schema the table belongs to
 * @displayOptions.show { operation: ["insert"] }
 */
    schema?: unknown;
/**
 * Name of the table in which to insert data to
 * @displayOptions.show { operation: ["insert"] }
 */
    table?: string | Expression<string> | PlaceholderValue;
/**
 * Comma-separated list of the properties which should used as columns for the new rows
 * @displayOptions.show { operation: ["insert"] }
 */
    columns?: string | Expression<string> | PlaceholderValue;
/**
 * Comma-separated list of the fields that the operation will return
 * @displayOptions.show { operation: ["insert"] }
 * @default *
 */
    returnFields?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @displayOptions.show { operation: ["executeQuery"] }
 * @default {}
 */
    additionalFields?: {
    /** The way queries should be sent to database. Can be used in conjunction with &lt;b&gt;Continue on Fail&lt;/b&gt;. See &lt;a href="https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.questdb/"&gt;the docs&lt;/a&gt; for more examples.
     * @default independently
     */
    mode?: 'independently' | 'transaction' | Expression<string>;
    /** Comma-separated list of properties which should be used as query parameters
     * @displayOptions.show { /operation: ["executeQuery"] }
     */
    queryParams?: string | Expression<string> | PlaceholderValue;
  };
}

export interface QuestDbV1Credentials {
  questDb: CredentialReference;
}

interface QuestDbV1NodeBase {
  type: 'n8n-nodes-base.questDb';
  version: 1;
  credentials?: QuestDbV1Credentials;
}

export type QuestDbV1ParamsNode = QuestDbV1NodeBase & {
  config: NodeConfig<QuestDbV1Params>;
};

export type QuestDbV1Node = QuestDbV1ParamsNode;