import { WalineComment, WalineCommentStatus } from '@waline/api';
import { WalineCommentSorting } from '@waline/client';
import { Accessor, Setter } from 'solid-js';
export declare const sortingMethods: WalineCommentSorting[];
interface ReactiveCommentData {
    /**
     * User Nickname
     */
    nick: string;
    /**
     * User link
     */
    link?: string;
    /**
     * Content of comment
     */
    comment: Accessor<string>;
    /**
     * Parent comment id
     */
    pid?: number;
    /**
     * Root comment id
     */
    rid?: number;
    /**
     * User id being at
     */
    at?: string;
    /**
     * Recaptcha Token
     */
    recaptchaV3?: string;
    /**
     * Reply user information
     */
    reply_user?: {
        nick: string;
        link: string;
        avatar: string;
    };
}
export interface ReactiveComment extends Exclude<ReactiveCommentData, 'ua'> {
    avatar: string;
    /**
     * User type
     */
    type?: 'administrator' | 'guest' | `verify:${string}`;
    objectId: number;
    /**
     * Time ISOString when the comment is created
     */
    children: Accessor<ReactiveComment[]>;
    sticky?: boolean;
    browser?: string;
    os?: string;
    level?: number;
    addr?: string;
    label?: string;
    time: number;
    user_id?: string | number;
    status?: WalineCommentStatus;
    like: Accessor<number>;
    orig: Accessor<string | undefined>;
    setLike: Setter<number>;
    setChildren: Setter<ReactiveComment[]>;
    setComment: Setter<string>;
    setOrig: Setter<string>;
}
export declare function makeDataReactive(data: WalineComment): ReactiveComment;
export declare function makeDatasReactive(datas: WalineComment[]): ReactiveComment[];
declare const commentListState: {
    status: Accessor<"error" | "loading" | "success">;
    sorting: Accessor<import('../waline/typings').WalineCommentSorting>;
    page: Accessor<number>;
    count: Accessor<number>;
    data: Accessor<ReactiveComment[]>;
    totalPages: Accessor<number>;
    setStatus: Setter<"error" | "loading" | "success">;
    setSorting: Setter<import('../waline/typings').WalineCommentSorting>;
    setPage: Setter<number>;
    setCount: Setter<number>;
    setData: Setter<ReactiveComment[]>;
    setTotalPages: Setter<number>;
};
export declare function getCommentData(page: number): void;
export declare function loadMore(): void;
export declare function refresh(): void;
export declare function deleteComment(id: number): void;
export default commentListState;
