import { OAuth2Client } from 'google-auth-library'; import type { Directory, IDirectoryConfig, Group, GroupMember, IDirectoryProvider, JacksonOption, PaginationParams } from '../../../typings'; interface GoogleProviderParams { opts: JacksonOption; directories: IDirectoryConfig; } export declare class GoogleProvider implements IDirectoryProvider { opts: JacksonOption; directories: IDirectoryConfig; groupFieldsToExcludeWhenCompare: string[]; userFieldsToExcludeWhenCompare: string[]; constructor({ directories, opts }: GoogleProviderParams); createOAuth2Client(directory: Directory): OAuth2Client; getDirectories(): Promise; getUsers(directory: Directory, options: PaginationParams | null): Promise<{ data: never[]; metadata: null; } | { data: { id: string; email: string; first_name: string; last_name: string; active: boolean; raw: import("@googleapis/admin").admin_directory_v1.Schema$User; }[]; metadata: { pageToken: string | undefined; hasNextPage: boolean; }; }>; getGroups(directory: Directory, options: PaginationParams | null): Promise<{ data: never[]; metadata: null; } | { data: { id: string; name: string; raw: import("@googleapis/admin").admin_directory_v1.Schema$Group; }[]; metadata: { pageToken: string; hasNextPage: boolean; }; }>; getGroupMembers(directory: Directory, group: Group): Promise; } export {};