/**
 * Strava Node - Version 1.1
 * Discriminator: resource=activity, operation=getAll
 */


interface Credentials {
  stravaOAuth2Api: CredentialReference;
}

/** Get many activities */
export type StravaV11ActivityGetAllParams = {
  resource: 'activity';
  operation: 'getAll';
/**
 * 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 50
 */
    limit?: number | Expression<number>;
};

export type StravaV11ActivityGetAllOutput = {
  achievement_count?: number;
  athlete?: {
    id?: number;
    resource_state?: number;
  };
  athlete_count?: number;
  comment_count?: number;
  commute?: boolean;
  device_watts?: boolean;
  display_hide_heartrate_option?: boolean;
  elapsed_time?: number;
  flagged?: boolean;
  from_accepted_tag?: boolean;
  has_heartrate?: boolean;
  has_kudoed?: boolean;
  heartrate_opt_out?: boolean;
  id?: number;
  kudos_count?: number;
  location_city?: null;
  location_state?: null;
  manual?: boolean;
  map?: {
    id?: string;
    resource_state?: number;
    summary_polyline?: string;
  };
  max_heartrate?: number;
  moving_time?: number;
  name?: string;
  photo_count?: number;
  pr_count?: number;
  private?: boolean;
  resource_state?: number;
  sport_type?: string;
  start_date?: string;
  start_date_local?: string;
  timezone?: string;
  total_photo_count?: number;
  trainer?: boolean;
  type?: string;
  upload_id_str?: string;
  utc_offset?: number;
  visibility?: string;
};

export type StravaV11ActivityGetAllNode = {
  type: 'n8n-nodes-base.strava';
  version: 1.1;
  credentials?: Credentials;
  config: NodeConfig<StravaV11ActivityGetAllParams>;
  output?: Items<StravaV11ActivityGetAllOutput>;
};