export interface Member {
    /** Key of the member */
    key: string;
    /** Title of the member */
    title: string;
}
export interface SelectedMember extends Member {
    /**
     * Boolean flag whether the member is inactive
     *
     * If not specified, the default value is `false`
     */
    inactive?: boolean;
}
type MembersState = {
    members: Member[];
    selectedMembers: SelectedMember[];
};
type SelectMemberAction = {
    type: 'selectMember';
    member: Member;
};
type DeselectMemberAction = {
    type: 'deselectMember';
    memberIndex: number;
};
type SelectAllMembersAction = {
    type: 'selectAllMembers';
};
type UpdatePossibleMembersAction = {
    type: 'updatePossibleMembers';
    members: Member[];
};
type UpdateMembersAction = {
    type: 'updateMembers';
    members: SelectedMember[];
};
type ClearAllMembersAction = {
    type: 'clearAllMembers';
};
type ToggleSelectedMemberAction = {
    type: 'toggleSelectedMember';
    memberKey: string;
};
export type MembersAction = SelectMemberAction | DeselectMemberAction | SelectAllMembersAction | UpdatePossibleMembersAction | UpdateMembersAction | ClearAllMembersAction | ToggleSelectedMemberAction;
export declare function membersReducer(state: MembersState, action: MembersAction): MembersState;
export {};
