/**
 * Google Sheets  Node - Version 2
 * Discriminator: resource=sheet, operation=delete
 */


interface Credentials {
  googleApi: CredentialReference;
  googleSheetsOAuth2Api: CredentialReference;
}

/** Delete columns and rows from a sheet */
export type GoogleSheetsV2SheetDeleteParams = {
  resource: 'sheet';
  operation: 'delete';
/**
 * Authentication
 * @default oAuth2
 */
    authentication?: 'oAuth2' | 'serviceAccount' | Expression<string>;
/**
 * The ID of the Google Spreadsheet. Found as part of the sheet URL https://docs.google.com/spreadsheets/d/{ID}/.
 */
    sheetId?: string | Expression<string> | PlaceholderValue;
/**
 * The table range to read from or to append data to. See the Google &lt;a href="https://developers.google.com/sheets/api/guides/values#writing"&gt;documentation&lt;/a&gt; for the details. If it contains multiple sheets it can also be added like this: "MySheet!A:F"
 * @default A:F
 */
    range?: string | Expression<string> | PlaceholderValue;
/**
 * Deletes columns and rows from a sheet
 * @default {}
 */
    toDelete?: {
        /** Columns
     */
    columns?: Array<{
      /** Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
       */
      sheetId?: string | Expression<string>;
      /** The start index (0 based and inclusive) of column to delete
       * @default 0
       */
      startIndex?: number | Expression<number>;
      /** Number of columns to delete
       * @default 1
       */
      amount?: number | Expression<number>;
    }>;
        /** Rows
     */
    rows?: Array<{
      /** Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
       */
      sheetId?: string | Expression<string>;
      /** The start index (0 based and inclusive) of row to delete
       * @default 0
       */
      startIndex?: number | Expression<number>;
      /** Number of rows to delete
       * @default 1
       */
      amount?: number | Expression<number>;
    }>;
  };
/**
 * Index of the first row which contains the actual data and not the keys. Starts with 0.
 * @displayOptions.hide { rawData: [true] }
 * @default 1
 */
    dataStartRow?: number | Expression<number>;
/**
 * Index of the row which contains the keys. Starts at 0. The incoming node data is matched to the keys for assignment. The matching is case sensitive.
 * @displayOptions.hide { rawData: [true] }
 * @default 0
 */
    keyRow?: number | Expression<number>;
};

export type GoogleSheetsV2SheetDeleteNode = {
  type: 'n8n-nodes-base.googleSheets';
  version: 2;
  credentials?: Credentials;
  config: NodeConfig<GoogleSheetsV2SheetDeleteParams>;
};