import { GrantType } from '@kinde-oss/kinde-typescript-sdk';
import type { SetupConfig, ClientType } from './kindeSetupTypes.js';
/**
 * Returns the above `initialConfig` private to this module, throws an exception if
 * said `initialConfig` has not been initialized.
 *
 * @returns {SetupConfig}
 */
export declare const getInitialConfig: <G extends GrantType>() => SetupConfig<G>;
/**
 * Returns the above `internalClient` private to this module, throws an exception if
 * said `internalClient` has not been initialized.
 *
 * @returns {ClientType<G>}
 */
export declare const getInternalClient: <G extends GrantType>() => ClientType<G>;
/**
 * Validates provided config, raises exception if any required parameters are
 * missing otherwise returns same config.
 *
 * @param {SetupConfig<G>} config
 * @returns {SetupConfig<G>}
 */
export declare const validateInitialConfig: <G extends GrantType>(config: SetupConfig<G>) => SetupConfig<G>;
/**
 * Initializes above `initialConfig` and `internalClient` raises an exception if
 * validation of provided config failes, returns created client otherwise.
 *
 * @param {SetupConfig<G>} config
 * @returns {ClientType<G>}
 */
export declare const setupInternalClient: <G extends GrantType>(config: SetupConfig<G>) => ClientType<G>;
