import { Entity, Constructable } from '../entity';
import { EdmTypeField } from './edm-type-field';
import { Field } from './field';
import { FieldBuilder } from './field-builder';
import { OrderableEdmTypeField } from './orderable-edm-type-field';
export declare class CustomField<EntityT extends Entity, NullableT extends boolean = false> extends Field<EntityT, NullableT> {
    protected fieldBuilder: FieldBuilder<Constructable<EntityT>>;
    constructor(fieldName: string, entityConstructor: Constructable<EntityT>, isNullable?: NullableT);
    edmString(): EdmTypeField<EntityT, 'Edm.String', NullableT, true>;
    edmBoolean(): EdmTypeField<EntityT, 'Edm.Boolean', NullableT, true>;
    edmGuid(): EdmTypeField<EntityT, 'Edm.Guid', NullableT, true>;
    edmDecimal(): EdmTypeField<EntityT, 'Edm.Decimal', NullableT, true>;
    edmInt16(): OrderableEdmTypeField<EntityT, 'Edm.Int16', NullableT, true>;
    edmInt32(): OrderableEdmTypeField<EntityT, 'Edm.Int32', NullableT, true>;
    edmInt64(): OrderableEdmTypeField<EntityT, 'Edm.Int64', NullableT, true>;
    edmSingle(): OrderableEdmTypeField<EntityT, 'Edm.Single', NullableT, true>;
    edmDouble(): OrderableEdmTypeField<EntityT, 'Edm.Double', NullableT, true>;
    edmByte(): OrderableEdmTypeField<EntityT, 'Edm.Byte', NullableT, true>;
    edmSByte(): OrderableEdmTypeField<EntityT, 'Edm.SByte', NullableT, true>;
    edmDateTimeOffset(): OrderableEdmTypeField<EntityT, 'Edm.DateTimeOffset', NullableT, true>;
    edmBinary(): EdmTypeField<EntityT, 'Edm.Binary', NullableT, true>;
}
//# sourceMappingURL=custom-field.d.ts.map