/**
 * Keap Node - Version 1
 * Discriminator: resource=contact, operation=get
 */


interface Credentials {
  keapOAuth2Api: CredentialReference;
}

/** Retrieve an contact */
export type KeapV1ContactGetParams = {
  resource: 'contact';
  operation: 'get';
/**
 * Contact ID
 */
    contactId?: string | Expression<string> | PlaceholderValue;
/**
 * Options
 * @default {}
 */
    options?: {
    /** Comma-delimited list of Contact properties to include in the response. (Some fields such as lead_source_id, custom_fields, and job_title aren't included, by default.).
     */
    fields?: string | Expression<string> | PlaceholderValue;
  };
};

export type KeapV1ContactGetOutput = {
  addresses?: Array<{
    field?: string;
    line1?: string;
    locality?: string;
    postal_code?: string;
  }>;
  contact_type?: string;
  custom_fields?: Array<{
    id?: number;
  }>;
  date_created?: string;
  email_addresses?: Array<{
    email?: string;
    field?: string;
  }>;
  email_opted_in?: boolean;
  email_status?: string;
  family_name?: string;
  given_name?: string;
  id?: number;
  last_updated?: string;
  last_updated_utc_millis?: number;
  phone_numbers?: Array<{
    field?: string;
    number?: string;
  }>;
  ScoreValue?: string;
  tag_ids?: Array<number>;
};

export type KeapV1ContactGetNode = {
  type: 'n8n-nodes-base.keap';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<KeapV1ContactGetParams>;
  output?: Items<KeapV1ContactGetOutput>;
};