import { DependencyContainer } from 'tsyringe';
import { Container, TokenMapping } from './container-api';
import { BifoldLogger } from './services/logger';
import { Config, HistoryEventsLoggerConfig } from './types/config';
export declare const defaultConfig: Config;
export declare const defaultHistoryEventsLogger: HistoryEventsLoggerConfig;
export declare class MainContainer implements Container {
    static readonly TOKENS: {
        readonly FN_LOAD_HISTORY: "fn.loadHistory";
        readonly HISTORY_ENABLED: "history.enabled";
        readonly HISTORY_EVENTS_LOGGER: "history.eventsLogger";
        readonly CONFIG: "config";
        readonly INLINE_ERRORS: "errors.inline";
        readonly ONBOARDING: "utility.onboarding";
        readonly UTIL_LOGGER: "utility.logger";
        readonly UTIL_OCA_RESOLVER: "utility.oca-resolver";
        readonly UTIL_LEDGERS: "utility.ledgers";
        readonly UTIL_PROOF_TEMPLATE: "utility.proof-template";
        readonly UTIL_ATTESTATION_MONITOR: "utility.attestation-monitor";
        readonly UTIL_APP_VERSION_MONITOR: "utility.app-version-monitor";
        readonly UTIL_AGENT_BRIDGE: "utility.agent-bridge";
        readonly UTIL_REFRESH_ORCHESTRATOR: "utility.refresh-orchestrator";
        readonly CACHE_CRED_DEFS: "cache.cred-defs";
        readonly CACHE_SCHEMAS: "cache.schemas";
        readonly OBJECT_SCREEN_CONFIG: "object.screen-config";
        readonly OBJECT_LAYOUT_CONFIG: "object.screenlayout-config";
        readonly LOAD_STATE: "state.load";
        readonly COMP_BUTTON: "comp.button";
        readonly FN_ONBOARDING_DONE: "fn.onboardingDone";
        readonly COMPONENT_CRED_LIST_HEADER_RIGHT: "fn.credListHeaderRight";
        readonly COMPONENT_CRED_LIST_OPTIONS: "fn.credListOptions";
        readonly COMPONENT_CRED_LIST_FOOTER: "fn.credListFooter";
        readonly NOTIFICATIONS: "notification.list";
        readonly NOTIFICATIONS_LIST_ITEM: "notification.list-item";
        readonly STACK_ONBOARDING: "stack.onboarding";
        readonly SERVICE_TERMS: "screen.terms";
        readonly CUSTOM_NAV_STACK_1: "nav.slot1";
        readonly HOOK_USE_AGENT_SETUP: "hook.useAgentSetup";
        readonly SCREEN_PREFACE: "screen.preface";
        readonly SCREEN_UPDATE_AVAILABLE: "screen.update-available";
        readonly SCREEN_TERMS: "screen.terms";
        readonly SCREEN_ONBOARDING: "screen.onboarding";
        readonly SCREEN_DEVELOPER: "screen.developer";
        readonly SCREEN_ONBOARDING_ITEM: "screen.onboarding.item";
        readonly SCREEN_ONBOARDING_PAGES: "screen.onboarding.pages";
        readonly SCREEN_SPLASH: "screen.splash";
        readonly SCREEN_SCAN: "screen.scan";
        readonly SCREEN_BIOMETRY: "screen.biometry";
        readonly SCREEN_TOGGLE_BIOMETRY: "screen.toggle-biometry";
        readonly SCREEN_PIN_EXPLAINER: "screen.pin-explainer";
        readonly COMPONENT_HOME_HEADER: "component.home.header";
        readonly COMPONENT_NOTIFICATION_BANNER: "component.notification.banner";
        readonly COMPONENT_HOME_NOTIFICATIONS_EMPTY_LIST: "component.home.notifications-empty-list";
        readonly COMPONENT_HOME_FOOTER: "component.home.footer";
        readonly COMPONENT_CRED_EMPTY_LIST: "component.cred.empty-list";
        readonly COMPONENT_RECORD: "component.record";
        readonly COMPONENT_PIN_HEADER: "component.pin-create-header";
        readonly COMPONENT_CONTACT_LIST_ITEM: "component.contact-list-item";
        readonly COMPONENT_CONTACT_DETAILS_CRED_LIST_ITEM: "component.contact-details-cred-list-item";
        readonly COMPONENT_CONNECTION_ALERT: "component.connection-alert";
        readonly GROUP_BY_REFERENT: "proof.groupByReferant";
        readonly CRED_HELP_ACTION_OVERRIDES: "proof.credHelpActionOverride";
    };
    private _container;
    private log?;
    private storage;
    constructor(container: DependencyContainer, log?: BifoldLogger);
    get container(): DependencyContainer;
    init(): Container;
    resolve<K extends keyof TokenMapping>(token: K): TokenMapping[K];
    resolveAll<K extends keyof TokenMapping, T extends K[]>(tokens: [...T]): {
        [I in keyof T]: TokenMapping[T[I]];
    };
}
export declare const SystemContext: import("react").Context<Container | undefined>;
export declare const SystemProvider: import("react").Provider<Container | undefined>;
export declare const useSystem: () => Container;
//# sourceMappingURL=container-impl.d.ts.map