import { GenericRecord } from '@credo-ts/core/build/modules/generic-records/repository/GenericRecord';
import { Moment } from 'moment';
export interface IHistoryManager {
    saveHistory: (recordData: HistoryRecord) => void;
    getHistoryItems: (query: HistoryQuery) => Promise<CustomRecord[]>;
    findGenericRecordById: (id: string) => Promise<GenericRecord | null>;
    removeGenericRecord: (genericRecord: GenericRecord) => Promise<void>;
    handleStoreHistorySettings: (selectedValue: HistoryBlockSelection | undefined) => Promise<void>;
    getStoredHistorySettingsOption: () => Promise<string | null>;
    getHistorySettingsOptionList: () => Array<HistoryBlockSelection>;
}
export interface HistoryBlockSelection {
    value: string;
    id: string;
    key?: number;
    date?: Moment;
}
export declare enum HistoryCardType {
    CardAccepted = "CardAccepted",
    CardDeclined = "CardDeclined",
    CardExpired = "CardExpired",
    CardRevoked = "CardRevoked",
    InformationSent = "InformationSent",
    PinChanged = "PinChanged",
    CardUpdates = "CardUpdates"
}
export interface HistoryRecord {
    /** History Record ID */
    id?: string;
    /** History Record Type */
    type?: HistoryCardType;
    /** History Record Message */
    message: string;
    /** History Record Date */
    createdAt?: Date;
    /** History Record Item ID */
    correspondenceId?: string;
    /** History Record Item Name */
    correspondenceName?: string;
}
export declare enum RecordType {
    AppNotificationRecord = "AppNotificationRecord",
    NotificationRecord = "NotificationRecord",
    HistoryRecord = "HistoryRecord"
}
export type TagObject = {
    [key: string]: string | boolean | undefined | Array<string> | null;
    [key: number]: never;
};
export interface CustomRecord {
    content: RecordTypes;
    tags?: TagObject;
}
export interface AppNotificationRecord {
    id?: string;
    createdAt?: Date;
    type?: AppNotificationCardType;
}
export interface NotificationRecord {
    message: string;
    credentialId: string;
    type?: NotificationCardType;
    id?: string;
    createdAt?: Date;
    isNotificationRemoved: boolean;
}
export declare enum AppNotificationCardType {
    AppPinReminder = "AppPinReminder"
}
export declare enum NotificationCardType {
    CardExpired = "CardExpired",
    CardRevoked = "CardRevoked"
}
type RecordTypes = NotificationRecord | HistoryRecord | AppNotificationRecord;
export type HistoryQuery = {
    type: RecordType;
};
export {};
//# sourceMappingURL=index.d.ts.map