///
import AdmZip from 'adm-zip';
import { GTFSFeedReaderBase } from './reader-base.js';
import { GTFSFeedBase } from '../../feed/base.js';
import type { GTFSAsyncIterableFeed, GTFSIterableFeed } from '../../feed/iterable.d.ts';
import type { GTFSLoadedFeed } from '../../feed/loaded.d.ts';
import type { GTFSFileInfo } from '../../file-info.d.ts';
import type { GTFSAsyncFileRecords, GTFSFileContent, GTFSFileRecords } from '../../types.d.ts';
/**
* GTFS file object to read
*/
type GTFSFile = {
/** File information */
info: GTFSFileInfo;
/** File content array buffer */
content: Buffer;
};
/**
* Feed Reader with input in memory.
*/
declare abstract class GTFSFeedReaderFromMemoryBase | Promise>> extends GTFSFeedReaderBase {
/** Zip object */
protected zip?: AdmZip;
/** File objects */
protected files?: GTFSFile[];
/**
* Constructor, the object of this class is to be created by static methods.
* The constructor is limited for internal calling.
* @param zip Zip file path or buffer
* @param directoryPath Directory path
* @param fileContents Array of file content objects
*/
protected constructor(zip?: string | Buffer | ArrayBuffer, fileContents?: GTFSFileContent[]);
/**
* Get records from an AdmZip entry.
* @param info File information
* @param entry Zip entry
*/
protected abstract getRecordsFromZipEntry(info: GTFSFileInfo, entry: AdmZip.IZipEntry): RecordsType;
/**
* Get records from file content.
* @param info File information
* @param content File content buffer
*/
protected abstract getRecordsFromFileContent(info: GTFSFileInfo, content: Buffer): RecordsType;
abstract loadFeed(): GTFSLoadedFeed | Promise;
abstract getFeed(): FeedType;
getRecords(info: GTFSFileInfo): RecordsType | undefined;
}
/**
* Synchronous Feed Reader from Data in Memory
*/
export declare class GTFSFeedReader extends GTFSFeedReaderFromMemoryBase {
protected getRecordsFromZipEntry(info: GTFSFileInfo, entry: AdmZip.IZipEntry): GTFSFileRecords;
protected getRecordsFromFileContent(info: GTFSFileInfo, content: Buffer): GTFSFileRecords;
getFeed(): GTFSIterableFeed;
loadFeed(): GTFSLoadedFeed;
/**
* Create an instance of GTFSFeedWriter from zip file.
* @param zip Zip file path or content buffer
* @returns GTFSFeedWriter instance
*/
static fromZip(zip: string | Buffer | ArrayBuffer): GTFSFeedReader;
/**
* Create an instance of GTFSFeedWriter from in-memory file contents.
* @param files Feed files object
* @returns GTFSFeedWriter instance
*/
static fromFileContents(files: GTFSFileContent[]): GTFSFeedReader;
}
/**
* Asynchronous Feed Reader from Data in Memory
*/
export declare class GTFSAsyncFeedReader extends GTFSFeedReaderFromMemoryBase {
protected getRecordsFromZipEntry(info: GTFSFileInfo, entry: AdmZip.IZipEntry): GTFSAsyncFileRecords;
protected getRecordsFromFileContent(info: GTFSFileInfo, content: Buffer): GTFSAsyncFileRecords;
getFeed(): GTFSAsyncIterableFeed;
loadFeed(): Promise;
/**
* Create an instance of GTFSFeedWriter from zip file.
* @param zip Zip file path or content buffer
* @returns GTFSFeedWriter instance
*/
static fromZip(zip: string | Buffer | ArrayBuffer): GTFSAsyncFeedReader;
/**
* Create an instance of GTFSFeedWriter from in-memory file contents.
* @param files Feed files object
* @returns GTFSFeedWriter instance
*/
static fromFileContents(files: GTFSFileContent[]): GTFSAsyncFeedReader;
}
export {};
//# sourceMappingURL=reader-memory.d.ts.map