import type { PassportIndexDetailDto, PassportIndexListItemDto } from '../dto/passport-index.dto';
export interface WpVisaInfoEntry {
    viCountryName: string[] | null;
    viVisaRequired: string[] | null;
    viVisaType: string[] | null;
    viMaxStay: number | null;
    viDocsHealth: string | null;
    viAppCenters: string | null;
    viReferenceLink: string | null;
    viH2Text: string | null;
}
export interface WpPassportData {
    riCountryCode: string | null;
    riFlagImage: string | null;
    riPassportImage: {
        node: {
            sourceUrl: string | null;
        };
    } | null;
    riGlobalRank: number | null;
    riVisaFree: number | null;
    riVoa: number | null;
    riEvisa: number | null;
    riVisaRequired: number | null;
    riMobilityScore: number | null;
    riContinent: string[] | null;
    riVisaInfo: (WpVisaInfoEntry | null)[] | null;
}
export interface WpPassportNode {
    slug: string | null;
    title: string | null;
    riPassportData: WpPassportData | null;
}
export interface WpPassportsConnection {
    nodes: WpPassportNode[];
    pageInfo: {
        hasNextPage: boolean;
        endCursor?: string | null;
    };
}
export declare function mapWpPassportToListItem(node: WpPassportNode): PassportIndexListItemDto;
export declare function mapWpPassportToDetail(node: WpPassportNode, flagUrlByCountryName?: ReadonlyMap<string, string>): PassportIndexDetailDto;
export declare function slicePassportsPage(connection: WpPassportsConnection, page: number, limit: number): {
    passports: PassportIndexListItemDto[];
    hasNextPage: boolean;
};
