import type { StreamClientOptions, TokenOrProvider, User } from '../coordinator/connection/types';
import { StreamClient } from '../coordinator/connection/client';
import type { StreamVideoClientOptions } from '../types';
/**
 * Utility function to get the instance key.
 */
export declare const getInstanceKey: (apiKey: string, user: User) => string;
/**
 * Returns a concurrency tag for call initialization.
 * @internal
 *
 * @param cid the call cid.
 */
export declare const getCallInitConcurrencyTag: (cid: string) => string;
/**
 * Creates a coordinator client.
 */
export declare const createCoordinatorClient: (apiKey: string, options: StreamClientOptions | undefined) => StreamClient;
/**
 * Creates a token provider and allows integrators to provide
 * a static token and a token provider at the same time.
 *
 * When both of them are provided, this function will create an internal
 * token provider that will use the static token on the first invocation
 * and the token provider on the later invocations.
 */
export declare const createTokenOrProvider: (options: StreamVideoClientOptions) => TokenOrProvider;
