import { Courier, CourierProps, InboxMessage } from '@trycourier/courier-js';
import { CourierInboxFeedType, InboxDataSet } from '@trycourier/courier-ui-inbox';
type AuthenticationHooks = {
    userId?: string;
    signIn: (props: CourierProps) => void;
    signOut: () => void;
};
type InboxHooks = {
    load: (props?: {
        feedType: CourierInboxFeedType;
        canUseCache: boolean;
    }) => Promise<void>;
    fetchNextPageOfMessages: (props: {
        feedType: CourierInboxFeedType;
    }) => Promise<InboxDataSet | null>;
    setPaginationLimit: (limit: number) => void;
    readMessage: (message: InboxMessage) => Promise<void>;
    unreadMessage: (message: InboxMessage) => Promise<void>;
    clickMessage: (message: InboxMessage) => Promise<void>;
    archiveMessage: (message: InboxMessage) => Promise<void>;
    openMessage: (message: InboxMessage) => Promise<void>;
    inbox?: InboxDataSet;
    archive?: InboxDataSet;
    unreadCount?: number;
    error?: Error;
};
export declare const useCourier: () => {
    shared: Courier;
    auth: AuthenticationHooks;
    inbox: InboxHooks;
};
export {};
