Skip to content

integrations/email/imap/dist

Interfaces

ImapCredentialStatusInput

Properties

authMode?
optional authMode?: "password" | "oauth2" | "external";
mailboxCredentialsConfigured?
optional mailboxCredentialsConfigured?: boolean;
serverConfigured?
optional serverConfigured?: boolean;

ImapEmailClient

Properties

rawClient
rawClient: ImapRawClient;

Methods

checkMailbox()
checkMailbox(): Promise<ImapMailboxReadiness>;
Returns

Promise\<ImapMailboxReadiness>

close()
close(): Promise<void>;
Returns

Promise\<void>

fetchMessages()
fetchMessages(input): Promise<unknown[]>;
Parameters
Parameter Type
input { query: FetchQueryObject; range: string | number[] | SearchObject; uid?: boolean; }
input.query FetchQueryObject
input.range string | number[] | SearchObject
input.uid? boolean
Returns

Promise\<unknown[]>

searchMessages()
searchMessages(input): Promise<number[]>;
Parameters
Parameter Type
input { query: SearchObject; uid?: boolean; }
input.query SearchObject
input.uid? boolean
Returns

Promise\<number[]>


ImapEmailClientOptions

Extended by

Properties

connection
connection: ImapFlowOptions;
leaveOpen?
optional leaveOpen?: boolean;
mailbox?
optional mailbox?: string;
rawClient?
optional rawClient?: ImapRawClient;
rawClientConnected?
optional rawClientConnected?: boolean;

ImapEmailIntegrationOptions

Extends

Properties

connection
connection: ImapFlowOptions;
Inherited from

ImapEmailClientOptions.connection

emailClient?
optional emailClient?: ImapEmailClient;
leaveOpen?
optional leaveOpen?: boolean;
Inherited from

ImapEmailClientOptions.leaveOpen

mailbox?
optional mailbox?: string;
Inherited from

ImapEmailClientOptions.mailbox

rawClient?
optional rawClient?: ImapRawClient;
Inherited from

ImapEmailClientOptions.rawClient

rawClientConnected?
optional rawClientConnected?: boolean;
Inherited from

ImapEmailClientOptions.rawClientConnected


ImapMailboxReadiness

Properties

mailbox
mailbox: string;
messagesTotal?
optional messagesTotal?: number;
readOnly?
optional readOnly?: boolean;
ready
ready: boolean;
status?
optional status?: unknown;
uidValidity?
optional uidValidity?: string | number;

ImapRawClient

Methods

connect()
connect(): Promise<void>;
Returns

Promise\<void>

fetch()
fetch(
   range,
   query,
options?): AsyncIterable<unknown>;
Parameters
Parameter Type
range string | number[] | SearchObject
query FetchQueryObject
options? { uid?: boolean; }
options.uid? boolean
Returns

AsyncIterable\<unknown>

logout()
logout(): Promise<void>;
Returns

Promise\<void>

mailboxOpen()
mailboxOpen(path): Promise<{
  exists: number;
  path: string;
  readOnly?: boolean;
  uidValidity: number | bigint;
}>;
Parameters
Parameter Type
path string
Returns

Promise\<{ exists: number; path: string; readOnly?: boolean; uidValidity: number | bigint; }>

search(query, options?): Promise<false | number[]>;
Parameters
Parameter Type
query SearchObject
options? { uid?: boolean; }
options.uid? boolean
Returns

Promise\<false | number[]>

status()
status(path, query): Promise<unknown>;
Parameters
Parameter Type
path string
query { messages?: boolean; uidValidity?: boolean; unseen?: boolean; }
query.messages? boolean
query.uidValidity? boolean
query.unseen? boolean
Returns

Promise\<unknown>

Functions

createImapEmailClient()

function createImapEmailClient(options): ImapEmailClient;

Parameters

Parameter Type
options ImapEmailClientOptions

Returns

ImapEmailClient


createImapEmailIntegration()

function createImapEmailIntegration(options): {
  bindingReport: OperationBindingReport;
  client: ImapEmailClient;
  manifest: {
     capabilities: {
        audiences?: ("customer-facing" | "internal-support" | "mixed")[];
        capability: string;
        changesWorkflow?: boolean;
        description?: string;
        exposesSensitiveData?: boolean;
        extension?: boolean;
        label?: string;
        metadata?: Record<string, unknown>;
        providerObjects?: {
           description?: string;
           kind: string;
           label?: string;
           metadata?: Record<string, unknown>;
           schemaName?: string;
        }[];
        requiresCredential?: boolean;
        sideEffect?: boolean;
     }[];
     category: string;
     channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
     coverage: {
        evidence: {
           label: string;
           url?: string;
        }[];
        notes: string[];
        scope:   | "support-workflow-subset"
           | "provider-api-subset"
           | "connector-required"
           | "local-protocol"
           | "full-provider-api";
     };
     credentialRequirements: {
        description?: string;
        id: string;
        label?: string;
        metadata?: Record<string, unknown>;
        required: boolean;
        scopes: string[];
     }[];
     directions: (
        | "receive-only"
        | "send-only"
        | "inbound-only"
        | "outbound-only"
       | "bidirectional")[];
     id: string;
     limitations: string[];
     maintainers: {
        name: string;
        type: "community" | "official" | "unknown" | "partner";
        url?: string;
     }[];
     metadata?: Record<string, unknown>;
     name: string;
     operations: {
        alias: string;
        audience?: "customer-facing" | "internal-support" | "mixed";
        audiences?: ("customer-facing" | "internal-support" | "mixed")[];
        capability: string;
        changesWorkflow?: boolean;
        description?: string;
        exposesSensitiveData?: boolean;
        extension: boolean;
        externallyVisible?: boolean;
        inputSchema?: unknown;
        inputSchemaName?: string;
        inputSchemaRef?: string;
        label?: string;
        metadata?: Record<string, unknown>;
        outputSchema?: unknown;
        outputSchemaName?: string;
        outputSchemaRef?: string;
        providerObject?: string;
        providerObjects?: {
           description?: string;
           kind: string;
           label?: string;
           metadata?: Record<string, unknown>;
           schemaName?: string;
        }[];
        providerOperation?: string;
        requiredPolicyIds?: string[];
        requiresApproval?: boolean;
        requiresCredential?: boolean;
        sideEffect?: boolean;
     }[];
     packageName: string;
     privacyNotes: string[];
     provider: string;
     trustLevel: "community" | "official" | "verified" | "experimental";
   } & {
     capabilities: readonly [{
        audiences: readonly ["customer-facing", "mixed"];
        capability: "read-provider-object";
        description: "Checks mailbox readiness and fetches explicitly requested message data through ImapFlow.";
        exposesSensitiveData: true;
        label: "Read IMAP mailbox data";
        providerObjects: readonly [{
           kind: "imapMailbox";
           label: "IMAP Mailbox";
         }, {
           kind: "emailMessage";
           label: "Email Message";
        }];
        requiresCredential: true;
      }, {
        audiences: readonly ["internal-support", "mixed"];
        capability: "search-provider-object";
        description: "Runs SDK-user supplied IMAP searches through ImapFlow.";
        exposesSensitiveData: true;
        label: "Search IMAP mailbox";
        providerObjects: readonly [{
           kind: "emailMessage";
           label: "Email Message";
        }];
        requiresCredential: true;
     }];
     category: "email";
     channelAudiences: readonly ["customer-facing", "mixed"];
     coverage: {
        evidence: readonly [{
           label: "RFC 9051 IMAP4rev2";
           url: "https://datatracker.ietf.org/doc/html/rfc9051";
         }, {
           label: "ImapFlow";
           url: "https://imapflow.com/";
        }];
        notes: readonly ["Coverage is a focused Cognidesk IMAP protocol adapter backed by ImapFlow.", "This package does not claim full mailbox synchronization, MIME parsing, retention policy, attachment policy, or outbound SMTP support."];
        scope: "local-protocol";
     };
     credentialRequirements: readonly [{
        description: "Mailbox host, port, TLS mode, and mailbox folder configuration.";
        id: "imap-server";
        label: "IMAP server settings";
        required: true;
      }, {
        description: "Mailbox username with password, OAuth2 access token, or externally supplied auth.";
        id: "imap-mailbox-credentials";
        label: "IMAP mailbox credentials";
        required: true;
     }];
     directions: readonly ["inbound-only"];
     id: "email.imap";
     limitations: readonly ["This package does not implement full mailbox synchronization, storage, retention, MIME parsing policy, attachment handling policy, deletion policy, or outbound SMTP.", "SDK users own mailbox selection, search scope, flag mutation policy, retention, redaction, and concurrency limits."];
     maintainers: readonly [{
        name: "Cognidesk";
        type: "official";
     }];
     metadata: {
        channelCoverage: {
           fullMailboxSync: "not-covered";
           mailboxReadiness: "provider-supported-via-protocol-library";
           messageFetch: "provider-supported-via-protocol-library";
           messageSearch: "provider-supported-via-protocol-library";
           mimeParsingAttachments: "not-covered";
           outboundSmtp: "not-covered";
        };
        directSliceMetadata: {
           allowlist: readonly ["connect", "logout", "mailboxOpen", "status", "search", "fetch"];
           checksum: "npm:imapflow@1.4.2";
           source: "RFC 9051 plus ImapFlow 1.4.2 declarations";
        };
        implementation: {
           integrationKitStatus: "implemented";
           libraryPackage: "imapflow";
           libraryVersionRange: "^1.4.2";
           manifestImport: "no-sdk-client-initialization";
           protocolSource: "RFC 9051";
           strategy: "protocol-library";
           verifiedAt: "2026-06-21";
           verifiedPackageVersion: "1.4.2";
        };
        rawClientEscapeHatch: "ImapFlow client exposed from createImapEmailClient().rawClient";
     };
     name: "IMAP Mailbox";
     operations: readonly [{
        alias: "imap.mailbox.check";
        capability: "read-provider-object";
        exposesSensitiveData: true;
        extension: true;
        providerObject: "imapMailbox";
      }, {
        alias: "email.thread.search";
        capability: "search-provider-object";
        exposesSensitiveData: true;
        providerObject: "emailMessage";
      }, {
        alias: "email.thread.read";
        capability: "read-provider-object";
        exposesSensitiveData: true;
        providerObject: "emailMessage";
     }];
     packageName: "@cognidesk/integration-email-imap";
     privacyNotes: readonly ["IMAP messages can contain customer content, addresses, headers, attachments, and mailbox folder metadata.", "Mailbox credentials stay server-side and are represented only as readiness state."];
     provider: "imap";
     trustLevel: "official";
  };
  metadata?: Record<string, unknown>;
  operationAliases: ("email.thread.read" | "email.thread.search" | "imap.mailbox.check")[];
  operations: {
     email.thread.read: (input) => Promise<unknown[]>;
     email.thread.search: (input) => Promise<number[]>;
     imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
  };
  rawClient: ImapRawClient;
  getOperationHandler: {
     email.thread.read: (input) => Promise<unknown[]>;
     email.thread.search: (input) => Promise<number[]>;
     imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
  }[Alias];
  requireOperationHandler: {
     email.thread.read: (input) => Promise<unknown[]>;
     email.thread.search: (input) => Promise<number[]>;
     imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
  }[Alias];
  run: Promise<Awaited<ReturnType<{
     email.thread.read: (input) => Promise<unknown[]>;
     email.thread.search: (input) => Promise<number[]>;
     imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
  }[Alias]>>>;
};

Parameters

Parameter Type
options ImapEmailIntegrationOptions

Returns

{
  bindingReport: OperationBindingReport;
  client: ImapEmailClient;
  manifest: {
     capabilities: {
        audiences?: ("customer-facing" | "internal-support" | "mixed")[];
        capability: string;
        changesWorkflow?: boolean;
        description?: string;
        exposesSensitiveData?: boolean;
        extension?: boolean;
        label?: string;
        metadata?: Record<string, unknown>;
        providerObjects?: {
           description?: string;
           kind: string;
           label?: string;
           metadata?: Record<string, unknown>;
           schemaName?: string;
        }[];
        requiresCredential?: boolean;
        sideEffect?: boolean;
     }[];
     category: string;
     channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
     coverage: {
        evidence: {
           label: string;
           url?: string;
        }[];
        notes: string[];
        scope:   | "support-workflow-subset"
           | "provider-api-subset"
           | "connector-required"
           | "local-protocol"
           | "full-provider-api";
     };
     credentialRequirements: {
        description?: string;
        id: string;
        label?: string;
        metadata?: Record<string, unknown>;
        required: boolean;
        scopes: string[];
     }[];
     directions: (
        | "receive-only"
        | "send-only"
        | "inbound-only"
        | "outbound-only"
       | "bidirectional")[];
     id: string;
     limitations: string[];
     maintainers: {
        name: string;
        type: "community" | "official" | "unknown" | "partner";
        url?: string;
     }[];
     metadata?: Record<string, unknown>;
     name: string;
     operations: {
        alias: string;
        audience?: "customer-facing" | "internal-support" | "mixed";
        audiences?: ("customer-facing" | "internal-support" | "mixed")[];
        capability: string;
        changesWorkflow?: boolean;
        description?: string;
        exposesSensitiveData?: boolean;
        extension: boolean;
        externallyVisible?: boolean;
        inputSchema?: unknown;
        inputSchemaName?: string;
        inputSchemaRef?: string;
        label?: string;
        metadata?: Record<string, unknown>;
        outputSchema?: unknown;
        outputSchemaName?: string;
        outputSchemaRef?: string;
        providerObject?: string;
        providerObjects?: {
           description?: string;
           kind: string;
           label?: string;
           metadata?: Record<string, unknown>;
           schemaName?: string;
        }[];
        providerOperation?: string;
        requiredPolicyIds?: string[];
        requiresApproval?: boolean;
        requiresCredential?: boolean;
        sideEffect?: boolean;
     }[];
     packageName: string;
     privacyNotes: string[];
     provider: string;
     trustLevel: "community" | "official" | "verified" | "experimental";
   } & {
     capabilities: readonly [{
        audiences: readonly ["customer-facing", "mixed"];
        capability: "read-provider-object";
        description: "Checks mailbox readiness and fetches explicitly requested message data through ImapFlow.";
        exposesSensitiveData: true;
        label: "Read IMAP mailbox data";
        providerObjects: readonly [{
           kind: "imapMailbox";
           label: "IMAP Mailbox";
         }, {
           kind: "emailMessage";
           label: "Email Message";
        }];
        requiresCredential: true;
      }, {
        audiences: readonly ["internal-support", "mixed"];
        capability: "search-provider-object";
        description: "Runs SDK-user supplied IMAP searches through ImapFlow.";
        exposesSensitiveData: true;
        label: "Search IMAP mailbox";
        providerObjects: readonly [{
           kind: "emailMessage";
           label: "Email Message";
        }];
        requiresCredential: true;
     }];
     category: "email";
     channelAudiences: readonly ["customer-facing", "mixed"];
     coverage: {
        evidence: readonly [{
           label: "RFC 9051 IMAP4rev2";
           url: "https://datatracker.ietf.org/doc/html/rfc9051";
         }, {
           label: "ImapFlow";
           url: "https://imapflow.com/";
        }];
        notes: readonly ["Coverage is a focused Cognidesk IMAP protocol adapter backed by ImapFlow.", "This package does not claim full mailbox synchronization, MIME parsing, retention policy, attachment policy, or outbound SMTP support."];
        scope: "local-protocol";
     };
     credentialRequirements: readonly [{
        description: "Mailbox host, port, TLS mode, and mailbox folder configuration.";
        id: "imap-server";
        label: "IMAP server settings";
        required: true;
      }, {
        description: "Mailbox username with password, OAuth2 access token, or externally supplied auth.";
        id: "imap-mailbox-credentials";
        label: "IMAP mailbox credentials";
        required: true;
     }];
     directions: readonly ["inbound-only"];
     id: "email.imap";
     limitations: readonly ["This package does not implement full mailbox synchronization, storage, retention, MIME parsing policy, attachment handling policy, deletion policy, or outbound SMTP.", "SDK users own mailbox selection, search scope, flag mutation policy, retention, redaction, and concurrency limits."];
     maintainers: readonly [{
        name: "Cognidesk";
        type: "official";
     }];
     metadata: {
        channelCoverage: {
           fullMailboxSync: "not-covered";
           mailboxReadiness: "provider-supported-via-protocol-library";
           messageFetch: "provider-supported-via-protocol-library";
           messageSearch: "provider-supported-via-protocol-library";
           mimeParsingAttachments: "not-covered";
           outboundSmtp: "not-covered";
        };
        directSliceMetadata: {
           allowlist: readonly ["connect", "logout", "mailboxOpen", "status", "search", "fetch"];
           checksum: "npm:imapflow@1.4.2";
           source: "RFC 9051 plus ImapFlow 1.4.2 declarations";
        };
        implementation: {
           integrationKitStatus: "implemented";
           libraryPackage: "imapflow";
           libraryVersionRange: "^1.4.2";
           manifestImport: "no-sdk-client-initialization";
           protocolSource: "RFC 9051";
           strategy: "protocol-library";
           verifiedAt: "2026-06-21";
           verifiedPackageVersion: "1.4.2";
        };
        rawClientEscapeHatch: "ImapFlow client exposed from createImapEmailClient().rawClient";
     };
     name: "IMAP Mailbox";
     operations: readonly [{
        alias: "imap.mailbox.check";
        capability: "read-provider-object";
        exposesSensitiveData: true;
        extension: true;
        providerObject: "imapMailbox";
      }, {
        alias: "email.thread.search";
        capability: "search-provider-object";
        exposesSensitiveData: true;
        providerObject: "emailMessage";
      }, {
        alias: "email.thread.read";
        capability: "read-provider-object";
        exposesSensitiveData: true;
        providerObject: "emailMessage";
     }];
     packageName: "@cognidesk/integration-email-imap";
     privacyNotes: readonly ["IMAP messages can contain customer content, addresses, headers, attachments, and mailbox folder metadata.", "Mailbox credentials stay server-side and are represented only as readiness state."];
     provider: "imap";
     trustLevel: "official";
  };
  metadata?: Record<string, unknown>;
  operationAliases: ("email.thread.read" | "email.thread.search" | "imap.mailbox.check")[];
  operations: {
     email.thread.read: (input) => Promise<unknown[]>;
     email.thread.search: (input) => Promise<number[]>;
     imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
  };
  rawClient: ImapRawClient;
  getOperationHandler: {
     email.thread.read: (input) => Promise<unknown[]>;
     email.thread.search: (input) => Promise<number[]>;
     imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
  }[Alias];
  requireOperationHandler: {
     email.thread.read: (input) => Promise<unknown[]>;
     email.thread.search: (input) => Promise<number[]>;
     imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
  }[Alias];
  run: Promise<Awaited<ReturnType<{
     email.thread.read: (input) => Promise<unknown[]>;
     email.thread.search: (input) => Promise<number[]>;
     imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
  }[Alias]>>>;
}
Name Type
bindingReport OperationBindingReport
client ImapEmailClient
manifest { capabilities: { audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension?: boolean; label?: string; metadata?: Record\<string, unknown>; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; requiresCredential?: boolean; sideEffect?: boolean; }[]; category: string; channelAudiences: ("customer-facing" | "internal-support" | "mixed")[]; coverage: { evidence: { label: string; url?: string; }[]; notes: string[]; scope: | "support-workflow-subset" | "provider-api-subset" | "connector-required" | "local-protocol" | "full-provider-api"; }; credentialRequirements: { description?: string; id: string; label?: string; metadata?: Record\<string, unknown>; required: boolean; scopes: string[]; }[]; directions: ( | "receive-only" | "send-only" | "inbound-only" | "outbound-only" | "bidirectional")[]; id: string; limitations: string[]; maintainers: { name: string; type: "community" | "official" | "unknown" | "partner"; url?: string; }[]; metadata?: Record\<string, unknown>; name: string; operations: { alias: string; audience?: "customer-facing" | "internal-support" | "mixed"; audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension: boolean; externallyVisible?: boolean; inputSchema?: unknown; inputSchemaName?: string; inputSchemaRef?: string; label?: string; metadata?: Record\<string, unknown>; outputSchema?: unknown; outputSchemaName?: string; outputSchemaRef?: string; providerObject?: string; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; providerOperation?: string; requiredPolicyIds?: string[]; requiresApproval?: boolean; requiresCredential?: boolean; sideEffect?: boolean; }[]; packageName: string; privacyNotes: string[]; provider: string; trustLevel: "community" | "official" | "verified" | "experimental"; } & { capabilities: readonly [{ audiences: readonly ["customer-facing", "mixed"]; capability: "read-provider-object"; description: "Checks mailbox readiness and fetches explicitly requested message data through ImapFlow."; exposesSensitiveData: true; label: "Read IMAP mailbox data"; providerObjects: readonly [{ kind: "imapMailbox"; label: "IMAP Mailbox"; }, { kind: "emailMessage"; label: "Email Message"; }]; requiresCredential: true; }, { audiences: readonly ["internal-support", "mixed"]; capability: "search-provider-object"; description: "Runs SDK-user supplied IMAP searches through ImapFlow."; exposesSensitiveData: true; label: "Search IMAP mailbox"; providerObjects: readonly [{ kind: "emailMessage"; label: "Email Message"; }]; requiresCredential: true; }]; category: "email"; channelAudiences: readonly ["customer-facing", "mixed"]; coverage: { evidence: readonly [{ label: "RFC 9051 IMAP4rev2"; url: "https://datatracker.ietf.org/doc/html/rfc9051"; }, { label: "ImapFlow"; url: "https://imapflow.com/"; }]; notes: readonly ["Coverage is a focused Cognidesk IMAP protocol adapter backed by ImapFlow.", "This package does not claim full mailbox synchronization, MIME parsing, retention policy, attachment policy, or outbound SMTP support."]; scope: "local-protocol"; }; credentialRequirements: readonly [{ description: "Mailbox host, port, TLS mode, and mailbox folder configuration."; id: "imap-server"; label: "IMAP server settings"; required: true; }, { description: "Mailbox username with password, OAuth2 access token, or externally supplied auth."; id: "imap-mailbox-credentials"; label: "IMAP mailbox credentials"; required: true; }]; directions: readonly ["inbound-only"]; id: "email.imap"; limitations: readonly ["This package does not implement full mailbox synchronization, storage, retention, MIME parsing policy, attachment handling policy, deletion policy, or outbound SMTP.", "SDK users own mailbox selection, search scope, flag mutation policy, retention, redaction, and concurrency limits."]; maintainers: readonly [{ name: "Cognidesk"; type: "official"; }]; metadata: { channelCoverage: { fullMailboxSync: "not-covered"; mailboxReadiness: "provider-supported-via-protocol-library"; messageFetch: "provider-supported-via-protocol-library"; messageSearch: "provider-supported-via-protocol-library"; mimeParsingAttachments: "not-covered"; outboundSmtp: "not-covered"; }; directSliceMetadata: { allowlist: readonly ["connect", "logout", "mailboxOpen", "status", "search", "fetch"]; checksum: "npm:imapflow@1.4.2"; source: "RFC 9051 plus ImapFlow 1.4.2 declarations"; }; implementation: { integrationKitStatus: "implemented"; libraryPackage: "imapflow"; libraryVersionRange: "^1.4.2"; manifestImport: "no-sdk-client-initialization"; protocolSource: "RFC 9051"; strategy: "protocol-library"; verifiedAt: "2026-06-21"; verifiedPackageVersion: "1.4.2"; }; rawClientEscapeHatch: "ImapFlow client exposed from createImapEmailClient().rawClient"; }; name: "IMAP Mailbox"; operations: readonly [{ alias: "imap.mailbox.check"; capability: "read-provider-object"; exposesSensitiveData: true; extension: true; providerObject: "imapMailbox"; }, { alias: "email.thread.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObject: "emailMessage"; }, { alias: "email.thread.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObject: "emailMessage"; }]; packageName: "@cognidesk/integration-email-imap"; privacyNotes: readonly ["IMAP messages can contain customer content, addresses, headers, attachments, and mailbox folder metadata.", "Mailbox credentials stay server-side and are represented only as readiness state."]; provider: "imap"; trustLevel: "official"; }
metadata? Record\<string, unknown>
operationAliases ("email.thread.read" | "email.thread.search" | "imap.mailbox.check")[]
operations { email.thread.read: (input) => Promise\<unknown[]>; email.thread.search: (input) => Promise\<number[]>; imap.mailbox.check: () => Promise\<ImapMailboxReadiness>; }
operations.email.thread.read() (input) => Promise\<unknown[]>
operations.email.thread.search() (input) => Promise\<number[]>
operations.imap.mailbox.check() () => Promise\<ImapMailboxReadiness>
rawClient ImapRawClient
getOperationHandler() (alias) => { email.thread.read: (input) => Promise\<unknown[]>; email.thread.search: (input) => Promise\<number[]>; imap.mailbox.check: () => Promise\<ImapMailboxReadiness>; }[Alias]
requireOperationHandler() (alias) => { email.thread.read: (input) => Promise\<unknown[]>; email.thread.search: (input) => Promise\<number[]>; imap.mailbox.check: () => Promise\<ImapMailboxReadiness>; }[Alias]
run() ( alias, input, context?) => Promise\<Awaited\<ReturnType\<{ email.thread.read: (input) => Promise\<unknown[]>; email.thread.search: (input) => Promise\<number[]>; imap.mailbox.check: () => Promise\<ImapMailboxReadiness>; }[Alias]>>>

createImapEmailIntegrationOperationHandlers()

function createImapEmailIntegrationOperationHandlers(client): {
  email.thread.read: (input) => Promise<unknown[]>;
  email.thread.search: (input) => Promise<number[]>;
  imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
};

Parameters

Parameter Type
client ImapEmailClient

Returns

{
  email.thread.read: (input) => Promise<unknown[]>;
  email.thread.search: (input) => Promise<number[]>;
  imap.mailbox.check: () => Promise<ImapMailboxReadiness>;
}
Name Type
email.thread.read() (input) => Promise\<unknown[]>
email.thread.search() (input) => Promise\<number[]>
imap.mailbox.check() () => Promise\<ImapMailboxReadiness>

createImapEmailLiveChecks()

function createImapEmailLiveChecks(options): {
  description: string;
  id: string;
  requiredCredentialIds: string[];
  run: Promise<{
     details: ImapMailboxReadiness;
  }>;
}[];

Parameters

Parameter Type
options ImapEmailClientOptions

Returns

{ description: string; id: string; requiredCredentialIds: string[]; run: Promise\<{ details: ImapMailboxReadiness; }>; }[]


imapEmailCredentialStatuses()

function imapEmailCredentialStatuses(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];

Parameters

Parameter Type
input ImapCredentialStatusInput

Returns

{ expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes?: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]

References

imapEmailProviderManifest

Re-exports imapEmailProviderManifest