export type KanaBaseGroupClientConfig = { endpoint?: string; version?: string; onError?: (error: Error) => Promise; retry?: (error: Error, retryNumber: number) => boolean; }; export type KanaGroupTokenClientConfig = KanaBaseGroupClientConfig & { groupToken: string; }; export type KanaPublicApiKeyClientConfig = KanaBaseGroupClientConfig & { apiKey: string; groupId: string; }; export type KanaGroupClientConfig = | KanaGroupTokenClientConfig | KanaPublicApiKeyClientConfig; export type KanaGroupClientFullConfig = { endpoint: string; version: string; onError?: (error: Error) => Promise; retry?: (error: Error, retryNumber: number) => boolean; } & ( | { type: 'GroupToken'; groupToken: string } | { type: 'PublicApiKey'; apiKey: string; groupId: string } );