import type { TNetworkId_S } from '@flux/shared/types';
import type { TFluxClientUID } from '@flux/shared/utils';
export type TTokenPayload = {
    networkId: TNetworkId_S;
    claim?: string;
    isAuthority?: boolean;
    machineUID?: TFluxClientUID;
    agentUID?: string;
};
export type TTokenPayloadJWT = string & {
    __brand: 'TokenPayloadJWT';
};
/**
 * Generates JWT string from a token payload.
 *
 * @param { TTokenPayload } payload - The token payload to sign
 * @param { number } [expiresIn] - Token expiry time in seconds
 *
 * @returns { string } The signed JWT string
 */
export declare const generateToken: (payload: TTokenPayload, expiresIn?: number) => string;
/**
 * Verifies a JWT token and returns the payload or throws if invalid.
 *
 * @param { unknown } token - The JWT token string to verify
 *
 * @returns { TTokenPayload } The decoded token payload
 */
export declare const verifyTokenOrThrow: (token: unknown) => TTokenPayload;
