UNPKG

declarations

Version:

[![npm version](https://badge.fury.io/js/declarations.svg)](https://www.npmjs.com/package/declarations)

84 lines (73 loc) 2.3 kB
// Type definitions for Segment's analytics.js for Node.js // Project: https://segment.com/docs/libraries/node/ // Definitions by: Andrew Fong <https://github.com/fongandrew> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace AnalyticsNode { interface Integrations { [index: string]: boolean; } export class Analytics { constructor(writeKey: string, opts?: { flushAt?: number, flushAfter?: number }); /* The identify method lets you tie a user to their actions and record traits about them. */ identify(message: { userId: string | number; traits?: Object; timestamp?: Date; context?: Object; integrations?: Integrations; }): Analytics; /* The track method lets you record the actions your users perform. */ track(message: { userId: string | number; event: string; properties?: Object; timestamp?: Date; context?: Object; integrations?: Integrations; }): Analytics; /* The page method lets you record page views on your website, along with optional extra information about the page being viewed. */ page(message: { userId: string | number; category?: string; name?: string; properties?: Object; timestamp?: Date; context?: Object; integrations?: Integrations; }): Analytics; /* alias is how you associate one identity with another. */ alias(message: { previousId: string | number; userId: string | number; integrations?: Integrations; }): Analytics; /* Group calls can be used to associate individual users with shared accounts or companies. */ group(message: { userId: string | number; groupId: string | number; traits?: Object; context?: Object; timestamp?: Date; anonymous_id?: string | number; integrations?: Integrations; }): Analytics; /* Flush batched calls to make sure nothing is left in the queue */ flush(fn?: (err: Error, batch: { batch: Array<{ type: string; }>; messageId: string; sentAt: Date; timestamp: Date; }) => void): Analytics; } } declare module "analytics-node" { export = AnalyticsNode.Analytics; }