import type { DiscordClient } from "./discord-client.js"; import type { ScopePolicy } from "./policy.js"; import type { RequestOptions } from "./types.js"; export interface MemberDirectoryRecord { bot: boolean; globalName: string | null; joinedAt: string | null; nickname: string | null; pending: boolean | null; roleIds: string[]; timeoutUntil: string | null; userId: string; username: string; } export interface MemberDirectoryListOptions extends RequestOptions { afterUserId?: string; limit?: number; } export interface MemberDirectorySearchOptions extends RequestOptions { limit?: number; query: string; } export interface MemberDirectoryClient { getGuildMember: DiscordClient["getGuildMember"]; listGuildMembers: DiscordClient["listGuildMembers"]; searchGuildMembers: DiscordClient["searchGuildMembers"]; } export interface MemberDirectoryServiceOptions { client: MemberDirectoryClient; policy: Pick; } export declare function normalizeMemberDirectoryQuery(query: string): string; export declare class MemberDirectoryService { #private; constructor(options: MemberDirectoryServiceOptions); get(guildId: string, userId: string, options?: RequestOptions): Promise<{ guildId: string; member: MemberDirectoryRecord; schemaVersion: number; status: "ok"; }>; list(guildId: string, options?: MemberDirectoryListOptions): Promise<{ guildId: string; members: MemberDirectoryRecord[]; page: { afterUserId: string | null; exhausted: boolean; nextAfterUserId: string | null; requestedLimit: number; returned: number; }; schemaVersion: number; status: "ok"; }>; search(guildId: string, options: MemberDirectorySearchOptions): Promise<{ guildId: string; match: "username-or-nickname-prefix"; members: MemberDirectoryRecord[]; page: { requestedLimit: number; returned: number; }; schemaVersion: number; status: "ok"; }>; } //# sourceMappingURL=member-directory-service.d.ts.map