import { Review as AppStoreReview, AppInformation as AppStoreAppInformation } from "./appstore-reviews";
import { Review as PlayStoreReview } from "./playstore-reviews";
import { AppInformation as PlayStoreAppInformation } from "google-play-scraper";
export declare type Config = {
    apps: (AppStoreConfig | PlayStoreConfig)[];
    storePublishedReviewsList: StorePublishedReviews;
    retrivePublishedReviewsList: RetrivePublishedReviews;
    onNewMessageAvailable: NewMessageAvailble;
    reviewLimit?: number;
    verbose?: boolean;
};
declare type StoreConfig = {
    showAppIcon?: boolean;
    appIcon?: string;
    verbose?: boolean;
};
export interface AppStoreConfig extends StoreConfig {
    id: string;
    generateMessageFromReview?: AppStoreMessageGenerator;
    pageRange?: number;
    regions: string[] | "all";
}
export interface PlayStoreConfig extends StoreConfig {
    id: string;
    generateMessageFromReview?: PlayStoreMessageGenerator;
    publisherKey: string;
}
export declare type PublishedReviews = {
    [appId: string]: string[];
};
export declare type Messages = string[];
export declare type Data = {
    newReviews: PublishedReviews;
    messages: Messages;
};
export declare type StorePublishedReviews = (reviews: PublishedReviews) => Promise<void>;
export declare type NewMessageAvailble = (messages: string[]) => Promise<void>;
export declare type RetrivePublishedReviews = () => Promise<PublishedReviews>;
export declare type AppStoreMessageGenerator = (review: AppStoreReview, appInformation: AppStoreAppInformation, config: AppStoreConfig) => string;
export declare type PlayStoreMessageGenerator = (review: PlayStoreReview, appInformation: PlayStoreAppInformation, config: PlayStoreConfig) => string;
export {};
