<commit_before>declare module 'redux-oidc' {
    import { UserManager, UserManagerSettings, User } from 'oidc-client';
    import { Action, BaseAction } from 'redux-actions';
    import { Map, fromJS } from 'immutable';
    import { Middleware, Store } from 'redux';
    import * as React from 'react';

    export interface UserState {
        user?: User;
        isLoadingUser: boolean;
    }

    export interface CallbackComponentProps {
        userManager: UserManager;
        successCallback: (user: User) => void;
        errorCallback?: (error: Error) => void;
        route?: string;
    }

    export class CallbackComponent extends React.Component<CallbackComponentProps> { }

    export interface OidcProviderProps<TSTate> {
        userManager: UserManager;
        store: Store<TSTate>;
    }

    export class OidcProvider<TState> extends React.Component<OidcProviderProps<TState>> { }

    // Components
    export function createUserManager(options: UserManagerSettings): UserManager;
    export function processSilentRenew(): void;
    export function loadUser<TStore>(store: TStore, userManager: UserManager): Promise<User>;
    export function reducer(state: UserState, action: Action<User | Error>): UserState;<commit_msg>Improve typings<commit_after>declare module 'redux-oidc' {
    import { UserManager, UserManagerSettings, User } from 'oidc-client';
    import { Map, fromJS } from 'immutable';
    import { Middleware, Store } from 'redux';
    import * as React from 'react';

    export interface BaseAction {
        readonly type: string;
    }

    export interface Action<Payload> extends BaseAction {
        readonly payload?: Payload;
        readonly error?: boolean;
    }

    export interface UserState {
        readonly user?: User;
        readonly isLoadingUser: boolean;
    }

    export interface CallbackComponentProps {
        readonly userManager: UserManager;
        readonly successCallback: (user: User) => void;
        readonly errorCallback?: (error: Error) => void;
        readonly route?: string;
    }

    export class CallbackComponent extends React.Component<CallbackComponentProps> { }

    export interface OidcProviderProps<TSTate> {
        readonly userManager: UserManager;
        readonly store: Store<TSTate>;
    }

    export class OidcProvider<TState> extends React.Component<OidcProviderProps<TState>> { }

    // Components
    export function createUserManager(options: UserManagerSettings): UserManager;
    export function processSilentRenew(): void;
    export function loadUser<TStore>(store: TStore, userManager: UserManager): Promise<User>;
    export function reducer(state: UserState, action: Action<User | Error>): UserState;
{'fraction_non_alphanumeric': 0.0931174089068826, 'fraction_numerical': 0.0, 'mean_word_length': 3.598984771573604, 'pattern_counts': {'":': 0, '<': 22, '<?xml version=': 0, '>': 26, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2909285', 'n_tokens_mistral': 728, 'n_tokens_neox': 709, 'n_words': 206}