import { AmplifyOutputsUnknown, AuthConfig, LegacyConfig, LibraryOptions, ResourcesConfig } from './types';
import { AuthClass } from './Auth';
import { ADD_OAUTH_LISTENER } from './constants';
export declare class AmplifyClass {
    private oAuthListener;
    private isConfigured;
    resourcesConfig: ResourcesConfig;
    libraryOptions: LibraryOptions;
    /**
     * Cross-category Auth utilities.
     *
     * @internal
     */
    readonly Auth: AuthClass;
    constructor();
    /**
     * Configures Amplify for use with your back-end resources.
     *
     * @remarks
     * This API does not perform any merging of either `resourcesConfig` or `libraryOptions`. The most recently
     * provided values will be used after configuration.
     *
     * @remarks
     * `configure` can be used to specify additional library options where available for supported categories.
     *
     * @param resourceConfig - Back-end resource configuration. Typically provided via the `aws-exports.js` file.
     * @param libraryOptions - Additional options for customizing the behavior of the library.
     */
    configure(resourcesConfig: ResourcesConfig | LegacyConfig | AmplifyOutputsUnknown, libraryOptions?: LibraryOptions): void;
    /**
     * Provides access to the current back-end resource configuration for the Library.
     *
     * @returns Returns the immutable back-end resource configuration.
     */
    getConfig(): Readonly<ResourcesConfig>;
    /** @internal */
    [ADD_OAUTH_LISTENER](listener: (authConfig: AuthConfig['Cognito']) => void): void;
    private notifyOAuthListener;
}
/**
 * The `Amplify` utility is used to configure the library.
 *
 * @remarks
 * `Amplify` orchestrates cross-category communication within the library.
 */
export declare const Amplify: AmplifyClass;
