import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode } from 'react';

declare const ISSUE_TYPES: readonly {
    label: string;
    value: string;
}[];
type IssueTypeValue = (typeof ISSUE_TYPES)[number]["label"];

type AuthStrategy = "localStorage" | "sessionStorage" | "user";
type AuthMethod = "string" | "object";
interface StorageKeys {
    strategy?: Exclude<AuthStrategy, "user-specified">;
    method?: AuthMethod;
    objectName?: string;
    userKeys: {
        email: string;
        name: string;
    };
}
interface UserSpecifiedKeys {
    strategy: "user-specified";
    userData: {
        email: string;
        name: string;
    };
}
type AuthStatus = StorageKeys | UserSpecifiedKeys;

interface SupportGuideProps {
    customFaqSection?: React.ReactNode;
    gradient?: [string, string];
    system?: IssueTypeValue;
    titles?: {
        description: string;
        guideSections?: {
            heading: string;
            steps: string[];
        }[];
        heading: string;
        id?: number;
    }[];
}

interface DefaultConfiguration {
    apiKey?: string;
    apiURL?: string;
    authStatus?: AuthStatus;
    headers?: Record<string, string>;
    issueType?: IssueTypeValue;
    position?: "bottom-left" | "bottom-right" | "left" | "right" | "top-left" | "top-right";
    sections?: Array<Section>;
    supportGuide?: SupportGuideProps;
}
interface Section {
    icon?: ReactNode;
    id: ViewType;
    title: string;
    show?: boolean;
}
declare const View: Readonly<{
    Chat: "Chat";
    Feedback: "Feedback";
    Home: "Home";
    Info: "Info";
    Issue: "Issue";
}>;
type ViewType = keyof typeof View;

declare const FeedBackBot: (defaultProps: DefaultConfiguration) => react_jsx_runtime.JSX.Element;

export { type DefaultConfiguration, FeedBackBot };
