import React, { ReactNode } from 'react'; export type AuthenticationStatus = 'loading' | 'unauthenticated' | 'authenticated'; export interface AuthenticationAdapter { getNonce: () => Promise; createMessage: (args: { nonce: string; address: string; chainId: number; }) => Message; getMessageBody: (args: { message: Message; }) => string; verify: (args: { message: Message; signature: string; }) => Promise; signOut: () => Promise; } export interface AuthenticationConfig { adapter: AuthenticationAdapter; status: AuthenticationStatus; } export declare function createAuthenticationAdapter(adapter: AuthenticationAdapter): AuthenticationAdapter; interface RainbowKitAuthenticationProviderProps extends AuthenticationConfig { enabled?: boolean; children: ReactNode; } export declare function RainbowKitAuthenticationProvider({ adapter, children, enabled, status, }: RainbowKitAuthenticationProviderProps): React.JSX.Element; export declare function useAuthenticationAdapter(): AuthenticationAdapter; export declare function useAuthenticationStatus(): AuthenticationStatus | null; export {};