import { ClientManager, AgentState, ClientManagerSignInOptions, IdentityAttributeResult, RequestIdentityAttributesParameters, RequestOpenIdIdentityAttributesParameters } from "@ic-reactor/core"; import type { Principal } from "@icp-sdk/core/principal"; import type { Identity } from "@icp-sdk/core/agent"; export interface UseAuthReturn { authenticate: () => Promise; login: (options?: ClientManagerSignInOptions) => Promise; logout: (options?: { returnTo?: string; }) => Promise; isAuthenticated: boolean; isAuthenticating: boolean; principal: Principal | null; identity: Identity | null; error: Error | undefined; } export interface CreateAuthHooksReturn { useAgentState: () => AgentState; useUserPrincipal: () => Principal | null; useAuth: () => UseAuthReturn; useIdentityAttributes: () => UseIdentityAttributesReturn; } export interface UseIdentityAttributesReturn { requestAttributes: (params: RequestIdentityAttributesParameters) => Promise; requestOpenIdAttributes: (params: RequestOpenIdIdentityAttributesParameters) => Promise; attributes: IdentityAttributeResult | null; isRequestingAttributes: boolean; attributeError: Error | null; clearAttributes: () => void; } /** * Create authentication hooks for managing user sessions with Internet Identity. * * @example * const { useAuth, useUserPrincipal, useAgentState } = createAuthHooks(clientManager) * * function App() { * const { login, logout, principal, isAuthenticated } = useAuth() * * return isAuthenticated * ? * : * } */ export declare const createAuthHooks: (clientManager: ClientManager) => CreateAuthHooksReturn; //# sourceMappingURL=createAuthHooks.d.ts.map