import type { NylasSessions } from '@nylas/identity'; import { DataResponseReturnType } from './types'; export type NylasRequestArgs = { method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path: string; body?: any; headers?: Record; }; export type User = { id: string; email: string; name?: string; provider?: string; }; export type AuthArgs = { provider?: string; scope?: Array; loginHint?: string; includeGrantScopes?: boolean; prompt?: string; metadata?: string; state?: string; }; export declare abstract class NylasApiRequest { abstract request(args: NylasRequestArgs): Promise>; abstract currentUser(): Promise; abstract setDefaultAuthArgs(authArgs: AuthArgs[]): void; abstract authenticationUrl(authArgs?: AuthArgs): Promise; } export declare class NylasIdentityRequestWrapper implements NylasApiRequest { private session; private activeGrantId?; private defaultAuthArgs; constructor(session: NylasSessions); setActiveGrantId(grantId: string): void; request({ method, path, body, headers }: NylasRequestArgs): Promise>; currentUser(): Promise; authenticationUrl(authArgs?: AuthArgs): Promise; setDefaultAuthArgs(authArgs: AuthArgs[]): void; }