import { Nullable } from '../../../../../../types';
import { TrafficStatus } from '../../../config';
import { BackendLayerTemplate, CreatedLayerTemplate, LayerBackendDates, LayerFrontendDates, UpdatedLayerTemplate } from '../../../lib';
import { Pillar } from '../../pillar';
export type TrafficSignType = 'Предупреждающие знаки' | 'Знаки приоритета' | 'Запрещающие знаки' | 'Предписывающие знаки' | 'Знаки особых предписаний' | 'Информационные знаки' | 'Знаки сервиса' | 'Знаки дополнительной информации';
export type TrafficSignData = {
    height: number;
    title: string;
    type: TrafficSignType;
};
export type TrafficSignIds = {
    readonly traffic_sign_id: string;
    readonly pillar_id?: Nullable<Pillar['pillar_id']>;
};
export type TrafficSignDopIds = Pick<TrafficSignIds, 'traffic_sign_id'> & {
    readonly dop_id: string;
};
export type TrafficSignMainFields = {
    comment?: Nullable<string>;
    direction?: Nullable<number>;
    status: TrafficStatus;
    traffic_sign_number: string;
    traffic_sign_title: string;
    traffic_sign_value?: Nullable<string>;
    traffic_sign_type: TrafficSignType;
};
export type TrafficSignDopMainFields = Pick<TrafficSignMainFields, 'status' | 'comment'> & {
    dop_sign_number: string;
    dop_sign_title: string;
    dop_sign_text?: Nullable<string>;
};
export type TrafficSignDop = LayerBackendDates & TrafficSignDopIds & TrafficSignDopMainFields & {};
export type CreatedTrafficSignDop = LayerFrontendDates & TrafficSignDopMainFields & {};
export type UpdatedTrafficSignDop = TrafficSignDopIds & LayerFrontendDates & TrafficSignDopMainFields & {};
export type TrafficSign = BackendLayerTemplate<TrafficSignIds & TrafficSignMainFields & {
    dops: TrafficSignDop[];
}>;
export type CreatedTrafficSign = CreatedLayerTemplate<TrafficSignMainFields & {
    dops: CreatedTrafficSignDop[];
}>;
export type UpdatedTrafficSign = UpdatedLayerTemplate<TrafficSignIds & TrafficSignMainFields & {
    dops: UpdatedTrafficSignDop[];
}>;
export type TrafficSignTypes = {
    [K in TrafficSignType]: TrafficSign['traffic_sign_number'][];
};
//# sourceMappingURL=types.d.ts.map