UNPKG

advanced-ussd-builder

Version:

Advanced USSD Menu Builder with persistent state and navigation

61 lines 2.34 kB
import { iUssdArgs, iUssdMenu, iUssdSession, iUssdBuilder, iUssdResponse, iProviderArgs, iUssdMenuOptions, iPaginateMenuOptions, tUssdProviderResponse, iUssdProviderResponses, tSetCustomSessionQuery } from './types'; export * from './types'; export * from './security'; export * from './proxy-handler'; export declare class UssdMenu { title: string; custom_input: boolean; children: iUssdMenu[]; constructor(title: string, children: iUssdMenu[], custom_input?: boolean); } export declare class UssdBuilder implements iUssdBuilder { private root_menu; opts: iUssdMenuOptions; local_session: any; session: iUssdSession | null; private raw_args; raw_headers: any | null; raw_body: string | null; private args; private redis; private providers; private session_ttl; private handlerRegistry; constructor(opts: iUssdMenuOptions, root_menu: UssdMenu); private get session_authenticated(); private get from_login(); private get redis_session_key(); get ussd_args(): iUssdArgs; update_user_input(user_input: string): Promise<void>; private set_args; private make_provider_response; private initialize_session; private start_session; private generate_id; private make_ussd_response; private generate_invalid_input_response; private update_session; private calculate_gsm_7bits_size; private str_includes_non_gsm_char; generate_paginated_menu(args: iPaginateMenuOptions): Promise<string | iUssdResponse>; render_main_menu(user_input?: string): Promise<iUssdResponse>; private on_forward_index_exceeded; private on_back_index_exceeded; private generate_hops; pipe<T extends keyof iUssdProviderResponses>(args: iProviderArgs[T], callback: (options: tUssdProviderResponse<T>) => void, headers?: Record<string, string>, rawBody?: string): Promise<void>; private get_menu_by_route; private process_proxy_continuation; private process_menu; private render_menu; private paginate_text_content; private split_message_for_pagination; private format_date_for_timestamp; /** * * @param query * @description set session in menu handlers * @returns void */ set_session(update?: tSetCustomSessionQuery): Promise<void>; } //# sourceMappingURL=index.d.ts.map