import { AmplifyContext, LibraryOptions, ResourcesConfig } from '@aws-amplify/core'; import { AmplifyOutputsUnknown, LegacyConfig } from '@aws-amplify/core/internals/utils'; /** * Creates a local, branded {@link AmplifyContext} from the given resource * configuration. * * Unlike `Amplify.configure()`, the returned context is **not** set as the * global context and no Hub events are dispatched. Category APIs that receive * this context (as their first positional argument) will use it instead of the * global one, enabling per-request context injection in server-side / * multi-tenant scenarios. * * This is the `aws-amplify`-level wrapper around * {@link createCoreAmplifyContext | `@aws-amplify/core`'s `createAmplifyContext`}. * The core factory intentionally does **not** inject default Cognito providers * (it sits below `@aws-amplify/auth` in the dependency graph); this wrapper * closes that gap by resolving and injecting **factory-style, per-context** * Cognito token/credentials providers when the caller does not supply their own. * Because each call builds fresh provider instances, contexts created here do * **not** share the process-wide singleton providers used by * `Amplify.configure()` — two contexts remain isolated from one another. * * Storage behaviour mirrors `Amplify.configure()`: tokens are persisted to * `localStorage` by default, or to cookies when `{ ssr: true }` is set. * * @param resourceConfig - Back-end resource configuration (typed config, * legacy `aws-exports`, or Gen2 `amplify_outputs`). * @param libraryOptions - Optional library options (e.g. Auth token/credentials * providers, `ssr`). * @returns A branded, frozen {@link AmplifyContext}. * * @example * ```ts * import { createAmplifyContext } from 'aws-amplify'; * import outputs from './amplify_outputs.json'; * * const ctx = createAmplifyContext(outputs); * // Pass ctx explicitly to category APIs: * await signIn(ctx, { username, password }); * ``` */ export declare function createAmplifyContext(resourceConfig: ResourcesConfig | LegacyConfig | AmplifyOutputsUnknown, libraryOptions?: LibraryOptions): AmplifyContext;