import { InitializedRecord, RecordSchema, RecordKeyMap } from '@orbit/records';
import { Dict } from '@orbit/utils';
import { Resource } from '../resource-document';
import { JSONAPIBaseSerializer } from './jsonapi-base-serializer';
import { SerializerForFn } from '@orbit/serializers';
export interface JSONAPIResourceIdentityDeserializationOptions {
    primaryRecord?: InitializedRecord;
    includeKeys?: boolean;
}
export interface JSONAPIResourceIdentitySerializerSettings {
    serializerFor: SerializerForFn;
    deserializationOptions?: JSONAPIResourceIdentityDeserializationOptions;
    schema: RecordSchema;
    keyMap?: RecordKeyMap;
    getResourceKey?: (recordType: string) => string;
}
export declare class JSONAPIResourceIdentitySerializer extends JSONAPIBaseSerializer<InitializedRecord, Resource, unknown, JSONAPIResourceIdentityDeserializationOptions> {
    protected _resourceKeys: Dict<string>;
    protected _getCustomResourceKey?: (recordType: string) => string;
    getResourceKey(type: string): string;
    constructor(settings: JSONAPIResourceIdentitySerializerSettings);
    serialize(recordIdentity: InitializedRecord): Resource;
    deserialize(resource: Resource, customOptions?: JSONAPIResourceIdentityDeserializationOptions): InitializedRecord;
}
