import type { IUserContext } from '../../../context';
import type { IActivity, IReaction } from '..';
import { ActivityType } from '../../../discussion/shared';
import { ResultsVisibility } from '../../../polls';
interface IPrepareActivityArgs {
    title?: string;
    content?: string;
    categories?: string;
}
interface IPreparePollActivityArgs {
    title?: {
        [key: string]: string;
    };
    options: {
        position: number;
        description: {
            [key: string]: string;
        };
    }[];
    settings: {
        show_remove_vote?: boolean;
        allow_multiple_votes?: boolean;
        deadline_at?: string;
        hide_participants?: boolean;
        number_of_winners?: number;
        results_visibility?: ResultsVisibility;
    };
    user: IUserContext;
    correctActivityId?: string;
}
interface IEnrichActivityArgs {
    activity: IActivity | Partial<IActivity>;
    user: IUserContext;
}
interface IEnrichPollActivityArgs {
    activity: IActivity | Partial<IActivity>;
    options: {
        position: number;
        description: {
            [key: string]: string;
        };
    }[];
    user: IUserContext;
}
interface IIncrementActivityLikesArgs {
    activity: IActivity;
    reaction?: IReaction;
    user?: IUserContext;
}
interface IDecrementActivityLikesArgs {
    activity: IActivity;
    user?: IUserContext;
}
export declare function prepareActivity({ title, content, categories }: IPrepareActivityArgs): {
    title: string | undefined;
    content: string | undefined;
    categories: string[];
    id: string;
    time: string;
    verb: ActivityType;
};
export declare function preparePollActivity({ title, options, settings, user, correctActivityId, }: IPreparePollActivityArgs): {
    title: {
        [key: string]: string;
    } | undefined;
    content: string;
    id: string;
    time: string;
    verb: ActivityType;
};
export declare function enrichActivity({ activity, user }: IEnrichActivityArgs): IActivity;
export declare function enrichPollActivity({ activity, options, user }: IEnrichPollActivityArgs): IActivity;
export declare function incrementActivityLikes({ activity, reaction, }: IIncrementActivityLikesArgs): void;
export declare function decrementActivityLikes({ activity, user }: IDecrementActivityLikesArgs): void;
export declare function incrementActivityPins({ activity, reaction, }: IIncrementActivityLikesArgs): void;
export declare function decrementActivityPins({ activity }: IDecrementActivityLikesArgs): void;
export {};
