export type SituationCodesT = "TABLE1_SINGLE_OR_MARRIED_2_HOLDERS" | "TABLE2_SINGLE_ONE_OR_MORE_DEPENDENTS" | "TABLE3_MARRIED_1_HOLDER" | "TABLE4_SINGLE_OR_MARRIED_2_HOLDERS_NO_DEPENDENTS_PERSON_WITH_DISABILITY" | "TABLE5_SINGLE_ONE_OR_MORE_DEPENDENTS_PERSON_WITH_DISABILITY" | "TABLE6_MARRIED_2_HOLDERS_ONE_OR_MORE_DEPENDENTS_PERSON_WITH_DISABILITY" | "TABLE7_MARRIED_1_HOLDER_PERSON_WITH_DISABILITY";
export type LocationT = "continent" | "azores" | "madeira";
export type PeriodT = "2025-01-01_2025-07-31" | "2025-08-01_2025-09-30" | "2025-10-01_2025-12-31";
export declare const VALID_PERIODS: readonly PeriodT[];
export declare function getYearFromPeriod(period: PeriodT): number;
export interface Condition {
    married: boolean;
    dependents: boolean;
    disabled: boolean;
    partnerDisabled: boolean;
    description: string;
    numberOfHolders?: number | null;
}
export interface Situation {
    code: SituationCodesT;
    description: string;
    conditions: Condition[];
}
export declare const Situations: {
    [key: string]: Situation;
};
export declare class SituationUtils {
    static getSituationFromCode(code: string): Situation | undefined;
    static getSituation(married: boolean, disabled: boolean, partnerDisabled: boolean, numberOfHolders?: number | null, numberOfDependents?: number): Situation | undefined;
    static getSituationFromCondition(condition: Condition): Situation | undefined;
}
export declare class RetentionPathsSchema {
    identifier: string;
    constructor(period: PeriodT, location: LocationT, situationCode: SituationCodesT, year: number | string);
    get path(): string;
}
//# sourceMappingURL=schemas.d.ts.map