///
import { EventEmitter } from "events";
import { ShioriConverter } from "shiori_converter";
import { ShioriTransaction } from "shiori_transaction";
import * as ShioriJK from "shiorijk";
import { Shiori } from "shioriloader";
/** The convenient SHIORI Shared Library Interface */
export declare class Shiorif extends EventEmitter {
/**
* convert array values to Reference* hash
* @param headersArray header array values
* @return headers hash
*/
static referencesFromArray(headersArray: (string | undefined)[]): {
[name: string]: string;
};
private readonly _shiori;
private readonly _requestParser;
private readonly _responseParser;
private _autoConvertRequestVersion;
private _autoAdjustToResponseCharset;
private _defaultHeaders;
private _synchronized;
private _lastResponseCharset?;
private lock;
/**
* @param shiori The instance of SHIORI Shared Library Interface
* @param options options
*/
constructor(shiori: Shiori, options?: {
/** requests will be converted to this version */
autoConvertRequestVersion?: ShioriConverter.ShioriVersion;
/** request charset header will be set to previous response charset */
autoAdjustToResponseCharset?: boolean;
/** default headers */
defaultHeaders?: {
[name: string]: string;
};
/** synchronized mode */
synchronized?: boolean;
});
/** shiori */
get shiori(): Shiori;
/** requests will be converted to this version */
get autoConvertRequestVersion(): ShioriConverter.ShioriVersion;
/** requests will be converted to this version */
set autoConvertRequestVersion(version: ShioriConverter.ShioriVersion);
/** request charset header will be set to previous response charset */
get autoAdjustToResponseCharset(): boolean;
/** request charset header will be set to previous response charset */
set autoAdjustToResponseCharset(enabled: boolean);
/** default headers */
get defaultHeaders(): {
[name: string]: string;
};
/** default headers */
set defaultHeaders(headers: {
[name: string]: string;
});
/** synchronized mode */
get synchronized(): boolean;
/** synchronized mode */
set synchronized(synchronized: boolean);
/**
* SHIORI/2.x/3.x load()
*
* this emits load(dirpath), loaded(status) events.
* @param dirpath The directory that SHIORI Shared Library is placed.
* The end character of dirpath must be the path separator (/ or \\).
* @return The status code
*/
load(dirpath: string): Promise;
private _load;
/**
* SHIORI/2.x/3.x request()
*
* this emits request(request), response(response) events.
* @param request The SHIORI Request
* @param convert enable auto request version convert
* @return The SHIORI request transaction
*/
request(request: string | ShioriJK.Message.Request, convert?: boolean): Promise;
private _request;
/**
* SHIORI/2.x/3.x request() by SHIORI/3.x request value
* @param method method
* @param id id
* @param headers headers
* @param convert enable auto request version convert
* @return The SHIORI request transaction
*/
request3(method: ShioriJK.Method, id: string, headers?: Shiorif.Headers, convert?: boolean): Promise;
/**
* SHIORI/2.x/3.x request() by SHIORI/2.x request value
* @param method method
* @param headers headers
* @param convert enable auto request version convert
* @return The SHIORI request transaction
*/
request2(method: ShioriJK.Method, headers?: Shiorif.Headers, convert?: boolean): Promise;
/**
* SHIORI/2.x/3.x request() by GET SHIORI/3.x request value
* @param id id
* @param headers headers
* @param convert enable auto request version convert
* @return The SHIORI request transaction
*/
get3(id: string, headers?: Shiorif.Headers, convert?: boolean): Promise;
/**
* SHIORI/2.x/3.x request() by NOTIFY SHIORI/3.x request value
* @param id id
* @param headers headers
* @param convert enable auto request version convert
* @return The SHIORI request transaction
*/
notify3(id: string, headers?: Shiorif.Headers, convert?: boolean): Promise;
/**
* SHIORI/2.x request() by GET Version SHIORI/2.x request value
* @param headers headers
* @param convert enable auto request version convert
* @return The SHIORI request transaction
*/
getVersion2(headers?: Shiorif.Headers, convert?: boolean): Promise;
/**
* SHIORI/2.x/3.x unload()
*
* this emits unload(), unloaded(status) events.
* @return The status code
*/
unload(): Promise;
private _unload;
}
export declare namespace Shiorif {
/** load() / unload() status error */
class StatusError extends Error {
}
/**
* headers
*
* array = Reference* / hash = general
*/
type Headers = {
[name: string]: string;
} | (string | undefined)[];
}