import { IFeedObject, IFeedTyping, IFeedUnreadButton, IFeedKeyboard } from '@/types';
declare var __VLS_1: {}, __VLS_47: {};
type __VLS_Slots = {} & {
    prepend?: (props: typeof __VLS_1) => any;
} & {
    'empty-feed'?: (props: typeof __VLS_47) => any;
};
declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    objects: {
        type: {
            (arrayLength: number): IFeedObject[];
            (...items: IFeedObject[]): IFeedObject[];
            new (arrayLength: number): IFeedObject[];
            new (...items: IFeedObject[]): IFeedObject[];
            isArray(arg: any): arg is any[];
            readonly prototype: any[];
            from<T>(arrayLike: ArrayLike<T>): T[];
            from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
            from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
            from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
            of<T>(...items: T[]): T[];
            readonly [Symbol.species]: ArrayConstructor;
        };
        required: true;
    };
    buttonParams: {
        type: () => IFeedUnreadButton;
        required: false;
        default: undefined;
    };
    scrollToBottom: {
        type: BooleanConstructor;
        default: boolean;
    };
    typing: {
        type: (BooleanConstructor | (() => IFeedTyping))[];
        default: boolean;
    };
    enableDoubleClickReply: {
        type: BooleanConstructor;
        default: boolean;
    };
    scrollTo: {
        type: StringConstructor;
        default: null;
    };
    applyStyle: {
        type: FunctionConstructor;
        default: () => null;
    };
    keyboardAlign: {
        type: () => "left" | "center" | "right";
        default: string;
        validator: (value: string) => boolean;
    };
    feedKeyboards: {
        type: () => IFeedKeyboard[];
        required: false;
        default: undefined;
    };
    feedKeyboardAlign: {
        type: () => "left" | "center" | "right";
        default: string;
        validator: (value: string) => boolean;
    };
    chatBackground: {
        type: StringConstructor;
        default: undefined;
    };
    isLoadingMore: {
        type: BooleanConstructor;
        default: boolean;
    };
    reactionsEnabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    subtextTooltipData: {
        type: ObjectConstructor;
        required: false;
        default: () => {};
    };
    /**
     * Позволяет переопределить действие "Перезвонить" для `message.call`.
     * Будет передано внутрь `CallMessage` как проп `onCall`.
     */
    callMessageOnCallback: {
        type: () => ((message: IFeedObject) => void) | undefined;
        required: false;
        default: undefined;
    };
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    loadMore: (...args: any[]) => void;
    smsInvite: (...args: any[]) => void;
    keyboardAction: (...args: any[]) => void;
    feedAction: (...args: any[]) => void;
    loadMoreDown: (...args: any[]) => void;
    messageAction: (...args: any[]) => void;
    clickRepliedMessage: (...args: any[]) => void;
    messageVisible: (...args: any[]) => void;
    forceScrollToBottom: (...args: any[]) => void;
    delimiterRead: (...args: any[]) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    objects: {
        type: {
            (arrayLength: number): IFeedObject[];
            (...items: IFeedObject[]): IFeedObject[];
            new (arrayLength: number): IFeedObject[];
            new (...items: IFeedObject[]): IFeedObject[];
            isArray(arg: any): arg is any[];
            readonly prototype: any[];
            from<T>(arrayLike: ArrayLike<T>): T[];
            from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
            from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
            from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
            of<T>(...items: T[]): T[];
            readonly [Symbol.species]: ArrayConstructor;
        };
        required: true;
    };
    buttonParams: {
        type: () => IFeedUnreadButton;
        required: false;
        default: undefined;
    };
    scrollToBottom: {
        type: BooleanConstructor;
        default: boolean;
    };
    typing: {
        type: (BooleanConstructor | (() => IFeedTyping))[];
        default: boolean;
    };
    enableDoubleClickReply: {
        type: BooleanConstructor;
        default: boolean;
    };
    scrollTo: {
        type: StringConstructor;
        default: null;
    };
    applyStyle: {
        type: FunctionConstructor;
        default: () => null;
    };
    keyboardAlign: {
        type: () => "left" | "center" | "right";
        default: string;
        validator: (value: string) => boolean;
    };
    feedKeyboards: {
        type: () => IFeedKeyboard[];
        required: false;
        default: undefined;
    };
    feedKeyboardAlign: {
        type: () => "left" | "center" | "right";
        default: string;
        validator: (value: string) => boolean;
    };
    chatBackground: {
        type: StringConstructor;
        default: undefined;
    };
    isLoadingMore: {
        type: BooleanConstructor;
        default: boolean;
    };
    reactionsEnabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    subtextTooltipData: {
        type: ObjectConstructor;
        required: false;
        default: () => {};
    };
    /**
     * Позволяет переопределить действие "Перезвонить" для `message.call`.
     * Будет передано внутрь `CallMessage` как проп `onCall`.
     */
    callMessageOnCallback: {
        type: () => ((message: IFeedObject) => void) | undefined;
        required: false;
        default: undefined;
    };
}>> & Readonly<{
    onLoadMore?: ((...args: any[]) => any) | undefined;
    onSmsInvite?: ((...args: any[]) => any) | undefined;
    onKeyboardAction?: ((...args: any[]) => any) | undefined;
    onFeedAction?: ((...args: any[]) => any) | undefined;
    onLoadMoreDown?: ((...args: any[]) => any) | undefined;
    onMessageAction?: ((...args: any[]) => any) | undefined;
    onClickRepliedMessage?: ((...args: any[]) => any) | undefined;
    onMessageVisible?: ((...args: any[]) => any) | undefined;
    onForceScrollToBottom?: ((...args: any[]) => any) | undefined;
    onDelimiterRead?: ((...args: any[]) => any) | undefined;
}>, {
    typing: boolean | IFeedTyping;
    chatBackground: string;
    applyStyle: Function;
    reactionsEnabled: boolean;
    subtextTooltipData: Record<string, any>;
    enableDoubleClickReply: boolean;
    buttonParams: IFeedUnreadButton;
    scrollToBottom: boolean;
    scrollTo: string;
    keyboardAlign: "left" | "right" | "center";
    feedKeyboards: IFeedKeyboard[];
    feedKeyboardAlign: "left" | "right" | "center";
    isLoadingMore: boolean;
    callMessageOnCallback: ((message: IFeedObject) => void) | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
