/**
 * Google Slides Node - Version 2
 * Discriminator: resource=presentation, operation=getSlides
 */


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

/** Get presentation slides */
export type GoogleSlidesV2PresentationGetSlidesParams = {
  resource: 'presentation';
  operation: 'getSlides';
/**
 * Authentication
 * @default oAuth2
 */
    authentication?: 'oAuth2' | 'serviceAccount' | Expression<string>;
/**
 * ID of the presentation to retrieve. Found in the presentation URL: &lt;code&gt;https://docs.google.com/presentation/d/PRESENTATION_ID/edit&lt;/code&gt;
 */
    presentationId?: string | Expression<string> | PlaceholderValue;
/**
 * 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>;
};

export type GoogleSlidesV2PresentationGetSlidesOutput = {
  objectId?: string;
  pageElements?: Array<{
    image?: {
      contentUrl?: string;
      imageProperties?: {
        outline?: {
          propertyState?: string;
        };
        shadow?: {
          propertyState?: string;
        };
      };
      placeholder?: {
        index?: number;
        parentObjectId?: string;
        type?: string;
      };
    };
    objectId?: string;
    shape?: {
      placeholder?: {
        index?: number;
        parentObjectId?: string;
        type?: string;
      };
      shapeProperties?: {
        autofit?: {
          autofitType?: string;
        };
        contentAlignment?: string;
        outline?: {
          dashStyle?: string;
          outlineFill?: {
            solidFill?: {
              alpha?: number;
            };
          };
          propertyState?: string;
          weight?: {
            magnitude?: number;
            unit?: string;
          };
        };
        shadow?: {
          alignment?: string;
          blurRadius?: {
            unit?: string;
          };
          propertyState?: string;
          rotateWithShape?: boolean;
          transform?: {
            scaleX?: number;
            scaleY?: number;
            unit?: string;
          };
          type?: string;
        };
        shapeBackgroundFill?: {
          propertyState?: string;
          solidFill?: {
            alpha?: number;
          };
        };
      };
      shapeType?: string;
      text?: {
        textElements?: Array<{
          endIndex?: number;
          paragraphMarker?: {
            style?: {
              direction?: string;
              indentFirstLine?: {
                unit?: string;
              };
              indentStart?: {
                unit?: string;
              };
            };
          };
          startIndex?: number;
          textRun?: {
            content?: string;
            style?: {
              bold?: boolean;
              fontFamily?: string;
              fontSize?: {
                unit?: string;
              };
              foregroundColor?: {
                opaqueColor?: {
                  themeColor?: string;
                };
              };
              weightedFontFamily?: {
                fontFamily?: string;
                weight?: number;
              };
            };
          };
        }>;
      };
    };
    size?: {
      height?: {
        magnitude?: number;
        unit?: string;
      };
      width?: {
        magnitude?: number;
        unit?: string;
      };
    };
    transform?: {
      scaleX?: number;
      scaleY?: number;
      unit?: string;
    };
  }>;
  pageProperties?: {
    pageBackgroundFill?: {
      propertyState?: string;
    };
  };
  slideProperties?: {
    layoutObjectId?: string;
    masterObjectId?: string;
    notesPage?: {
      notesProperties?: {
        speakerNotesObjectId?: string;
      };
      objectId?: string;
      pageElements?: Array<{
        objectId?: string;
        shape?: {
          placeholder?: {
            index?: number;
            parentObjectId?: string;
            type?: string;
          };
          shapeProperties?: {
            autofit?: {
              fontScale?: number;
            };
            outline?: {
              propertyState?: string;
            };
            shadow?: {
              propertyState?: string;
            };
            shapeBackgroundFill?: {
              propertyState?: string;
            };
          };
          shapeType?: string;
        };
        size?: {
          height?: {
            magnitude?: number;
            unit?: string;
          };
          width?: {
            magnitude?: number;
            unit?: string;
          };
        };
        transform?: {
          scaleX?: number;
          scaleY?: number;
          unit?: string;
        };
      }>;
      pageProperties?: {
        pageBackgroundFill?: {
          propertyState?: string;
        };
      };
      pageType?: string;
    };
  };
};

export type GoogleSlidesV2PresentationGetSlidesNode = {
  type: 'n8n-nodes-base.googleSlides';
  version: 2;
  credentials?: Credentials;
  config: NodeConfig<GoogleSlidesV2PresentationGetSlidesParams>;
  output?: Items<GoogleSlidesV2PresentationGetSlidesOutput>;
};