/**
 * Onfleet Node - Version 1
 * Discriminator: resource=team, operation=getTimeEstimates
 */


interface Credentials {
  onfleetApi: CredentialReference;
}

/** Get estimated times for upcoming tasks for a team, returns a selected driver */
export type OnfleetV1TeamGetTimeEstimatesParams = {
  resource: 'team';
  operation: 'getTimeEstimates';
/**
 * The ID of the team object for lookup
 */
    id?: string | Expression<string> | PlaceholderValue;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** Drop Off
     * @default {}
     */
    dropOff?: {
        /** DropOff Properties
     */
    dropOffProperties?: {
      /** The longitude for drop off location
       * @default 0
       */
      dropOffLongitude?: number | Expression<number>;
      /** The latitude for drop off location
       * @default 0
       */
      dropOffLatitude?: number | Expression<number>;
    };
  };
    /** Pick Up
     * @default {}
     */
    pickUp?: {
        /** Pick Up Properties
     */
    pickUpProperties?: {
      /** The longitude for pickup location
       * @default 0
       */
      pickupLongitude?: number | Expression<number>;
      /** The latitude for pickup location
       * @default 0
       */
      pickupLatitude?: number | Expression<number>;
      /** If the request includes pickupLocation, pickupTime must be present if the time is fewer than 3 hours in the future
       */
      pickupTime?: string | Expression<string>;
    };
  };
    /** Vehicle types to ignore in the query
     * @default CAR
     */
    restrictedVehicleTypes?: 'CAR' | 'MOTORCYCLE' | 'BICYCLE' | 'TRUCK' | Expression<string>;
    /** The expected time a worker will take at the pickupLocation, dropoffLocation, or both (as applicable) Unit: seconds
     * @default 120
     */
    serviceTime?: number | Expression<number>;
  };
};

export type OnfleetV1TeamGetTimeEstimatesNode = {
  type: 'n8n-nodes-base.onfleet';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<OnfleetV1TeamGetTimeEstimatesParams>;
};