import type { StateCreator, StoreApi, StoreMutatorIdentifier } from '../vanilla.mjs'; type Config = Parameters<(Window extends { __REDUX_DEVTOOLS_EXTENSION__?: infer T; } ? T : { connect: (param: any) => any; })['connect']>[0]; declare module '../vanilla.mjs' { interface StoreMutators { 'zustand/devtools': WithDevtools; } } type Cast = T extends U ? T : U; type Write = Omit & U; type TakeTwo = T extends { length: 0; } ? [undefined, undefined] : T extends { length: 1; } ? [...a0: Cast, a1: undefined] : T extends { length: 0 | 1; } ? [...a0: Cast, a1: undefined] : T extends { length: 2; } ? T : T extends { length: 1 | 2; } ? T : T extends { length: 0 | 1 | 2; } ? T : T extends [infer A0, infer A1, ...unknown[]] ? [A0, A1] : T extends [infer A0, (infer A1)?, ...unknown[]] ? [A0, A1?] : T extends [(infer A0)?, (infer A1)?, ...unknown[]] ? [A0?, A1?] : never; type WithDevtools = Write>; type StoreDevtools = S extends { setState: (...a: infer Sa) => infer Sr; } ? { setState(...a: [...a: TakeTwo, action?: A]): Sr; } : never; export interface DevtoolsOptions extends Config { name?: string; enabled?: boolean; anonymousActionType?: string; store?: string; } type Devtools = (initializer: StateCreator, devtoolsOptions?: DevtoolsOptions) => StateCreator; declare module '../vanilla.mjs' { interface StoreMutators { 'zustand/devtools': WithDevtools; } } export type NamedSet = WithDevtools>['setState']; export declare const devtools: Devtools; export {};