/**
 * Twilio Node - Version 1
 * Discriminator: resource=call, operation=make
 */


interface Credentials {
  twilioApi: CredentialReference;
}

export type TwilioV1CallMakeParams = {
  resource: 'call';
  operation: 'make';
/**
 * The number from which to send the message
 */
    from?: string | Expression<string> | PlaceholderValue;
/**
 * The number to which to send the message
 */
    to?: string | Expression<string> | PlaceholderValue;
/**
 * Whether to use the &lt;a href="https://www.twilio.com/docs/voice/twiml"&gt;Twilio Markup Language&lt;/a&gt; in the message
 * @default false
 */
    twiml?: boolean | Expression<boolean>;
/**
 * Message
 */
    message?: string | Expression<string> | PlaceholderValue;
  options?: {
    /** Status Callbacks allow you to receive events related to the REST resources managed by Twilio: Rooms, Recordings and Compositions
     */
    statusCallback?: string | Expression<string> | PlaceholderValue;
  };
};

export type TwilioV1CallMakeOutput = {
  account_sid?: string;
  annotation?: null;
  answered_by?: null;
  api_version?: string;
  caller_name?: null;
  date_created?: null;
  date_updated?: null;
  direction?: string;
  duration?: null;
  end_time?: null;
  forwarded_from?: null;
  from?: string;
  from_formatted?: string;
  group_sid?: null;
  parent_call_sid?: null;
  price?: null;
  price_unit?: string;
  queue_time?: string;
  sid?: string;
  start_time?: null;
  status?: string;
  subresource_uris?: {
    events?: string;
    notifications?: string;
    payments?: string;
    recordings?: string;
    siprec?: string;
    streams?: string;
    transcriptions?: string;
    user_defined_message_subscriptions?: string;
    user_defined_messages?: string;
  };
  to?: string;
  to_formatted?: string;
  trunk_sid?: null;
  uri?: string;
};

export type TwilioV1CallMakeNode = {
  type: 'n8n-nodes-base.twilio';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<TwilioV1CallMakeParams>;
  output?: Items<TwilioV1CallMakeOutput>;
};