import { CodeActe } from '../shared_types/dossiers_legislatifs';
export interface Document {
    document: DocumentDocument | DocumentSupprime;
}
export interface DocumentDocument {
    "@xmlns": string;
    "@xmlns:xsi": string;
    "@xsi:type": DocumentXsiType;
    uid: string;
    legislature: null | string;
    cycleDeVie: CycleDeVie;
    denominationStructurelle: DocumentDenominationStructurelle;
    provenance?: Provenance;
    titres: Titres;
    divisions: Divisions | null;
    dossierRef: string;
    redacteur: null;
    classification: Classification;
    auteurs: Auteurs;
    correction: Correction | null;
    notice: Notice;
    indexation: Indexation | null;
    imprimerie: Imprimerie | null;
    coSignataires?: CoSignataires | null;
    depotAmendements?: DepotAmendements | null;
    organesReferents?: OrganesReferents | null;
    rapportPublie?: string;
}
export interface DocumentSupprime {
    "@xmlns": string;
    "@xmlns:xsi": string;
    "@xsi:type": DocumentXsiType;
    uid: string;
    metadatas: DocumentSupprimeMetadata;
}
export interface DocumentSupprimeMetadata {
    dateSuppression: Date;
}
export declare enum DocumentXsiType {
    AccordInternationalType = "accordInternational_Type",
    AvisConseilEtatType = "avisConseilEtat_Type",
    DocumentEtudeImpactType = "documentEtudeImpact_Type",
    RapportParlementaireType = "rapportParlementaire_Type",
    TexteLoiType = "texteLoi_Type"
}
export interface Auteurs {
    auteur: AuteurElement[] | AuteurElement;
}
export interface AuteurElement {
    acteur?: AuteurActeur;
    organe?: AuteurOrgane;
}
export interface AuteurActeur {
    acteurRef: string;
    qualite: Qualite;
}
export declare enum Qualite {
    Auteur = "auteur",
    Cosignataire = "cosignataire",
    Rapporteur = "rapporteur",
    RapporteurGénéral = "rapporteur g\u00E9n\u00E9ral",
    RapporteurPourAvis = "rapporteur pour avis",
    RapporteurSpécial = "rapporteur sp\u00E9cial"
}
export interface AuteurOrgane {
    organeRef: string;
}
export interface Classification {
    famille: Famille | null;
    type: ProcedureParlementaire;
    sousType: SousType | null;
    statutAdoption: StatutAdoption | null;
}
export interface Famille {
    depot: ProcedureParlementaire;
    classe: ProcedureParlementaire;
    espece?: ProcedureParlementaire;
}
export interface ProcedureParlementaire {
    code: string;
    libelle: string;
}
export interface SousType {
    code: Code;
    libelle?: string;
    libelleEdition?: string;
}
export declare enum Code {
    Accpresrp = "ACCPRESRP",
    Appart1515 = "APPART1515",
    Appart341 = "APPART341",
    Apploi = "APPLOI",
    Aue = "AUE",
    Autratconv = "AUTRATCONV",
    Avecvote = "AVECVOTE",
    Censure492 = "CENSURE492",
    Censure493 = "CENSURE493",
    Comenq = "COMENQ",
    Compa = "COMPA",
    Comspcpte = "COMSPCPTE",
    Const = "CONST",
    Ctrlbudg = "CTRLBUDG",
    Divers = "DIVERS",
    Engresptxt = "ENGRESPTXT",
    Enqu = "ENQU",
    Fin = "FIN",
    Fingest = "FINGEST",
    Finrect = "FINRECT",
    Finssoc = "FINSSOC",
    Finssocrec = "FINSSOCREC",
    Impactlois = "IMPACTLOIS",
    Legdelegan = "LEGDELEGAN",
    Minfocomper = "MINFOCOMPER",
    Modregltan = "MODREGLTAN",
    Noteopecst = "NOTEOPECST",
    Offparl = "OFFPARL",
    Org = "ORG",
    Petition = "PETITION",
    Presidage = "PRESIDAGE",
    Presidass = "PRESIDASS",
    Presidrep = "PRESIDREP",
    Propactcom = "PROPACTCOM",
    Prpdit = "PRPDIT",
    Rect = "RECT",
    Refart11 = "REFART11",
    Rgltbudg = "RGLTBUDG",
    Rgltbudg2 = "RGLTBUDG2",
    Supp = "SUPP",
    Suspours = "SUSPOURS",
    Tvxinstiteurop = "TVXINSTITEUROP"
}
export declare enum StatutAdoption {
    Adoptcom = "ADOPTCOM",
    Adoptseance = "ADOPTSEANCE",
    Rejetseance = "REJETSEANCE"
}
export interface CoSignataires {
    coSignataire: CoSignataireElement[] | CoSignataireElement;
}
export interface CoSignataireElement {
    acteur?: CoSignataireActeur;
    dateCosignature: string;
    dateRetraitCosignature: null | string;
    edite: string;
    organe?: CoSignataireOrgane;
}
export interface CoSignataireActeur {
    acteurRef: string;
}
export interface InitiateursRefs {
    acteurRef?: string;
    organeRef?: string;
}
export interface CoSignataireOrgane {
    organeRef: string;
    etApparentes: string;
}
export interface Correction {
    typeCorrection: TypeCorrection;
    niveauCorrection?: string;
}
export declare enum TypeCorrection {
    Rectifié = "Rectifi\u00E9"
}
export interface CycleDeVie {
    chrono: Chrono;
}
export interface Chrono {
    dateCreation: Date;
    dateDepot: Date | null;
    datePublication: Date | null;
    datePublicationWeb: Date | null;
}
export declare enum DocumentDenominationStructurelle {
    Allocution = "Allocution",
    Avis = "Avis",
    Déclaration = "D\u00E9claration",
    Lettre = "Lettre",
    Message = "Message",
    Motion = "Motion",
    ProjetDeLoi = "Projet de loi",
    PropositionDeLoi = "Proposition de loi",
    PropositionDeRésolution = "Proposition de r\u00E9solution",
    Rapport = "Rapport",
    RapportDInformation = "Rapport d'information",
    Résolution = "R\u00E9solution"
}
export interface DepotAmendements {
    amendementsSeance: AmendementsSeance;
    amendementsCommission?: AmendementsCommission;
}
export interface AmendementsCommission {
    commission: CommissionElement[] | CommissionElement;
}
export interface CommissionElement {
    organeRef: string;
    amendable: string;
    dateLimiteDepot: null;
}
export interface AmendementsSeance {
    amendable: string;
    dateLimiteDepot: null;
}
export interface Divisions {
    division: Division[] | Division;
}
export interface Division {
    "@xsi:type": DocumentXsiType;
    uid: string;
    legislature: null | string;
    cycleDeVie: CycleDeVie;
    denominationStructurelle: string;
    titres: Titres;
    divisions: Divisions | null;
    dossierRef: string;
    redacteur: null;
    classification: Classification;
    auteurs: Auteurs;
    organesReferents?: OrganesReferents | null;
    correction: Correction | null;
    notice: Notice;
    indexation: Indexation | null;
    imprimerie: Imprimerie | null;
    coSignataires?: null;
    depotAmendements?: null;
    rapportPublie?: string;
}
export interface Imprimerie {
    DIAN?: null | string;
    ISBN?: null | string;
    ISSN?: null | string;
    nbPage?: null | string;
    prix: null | string;
}
export interface Notice {
    numNotice?: string;
    formule?: string;
    adoptionConforme: string;
}
export interface Titres {
    titrePrincipal: string;
    titrePrincipalCourt: string;
}
export interface OrganesReferents {
    organeRef: string[] | string;
}
export declare enum Provenance {
    Commission = "Commission",
    Séance = "S\u00E9ance",
    TexteDéposé = "Texte D\u00E9pos\u00E9"
}
export interface DossierParlementaire {
    dossierParlementaire: DossierParlementaireDossierParlementaire;
}
export interface DossierParlementaireDossierParlementaire {
    "@xmlns": string;
    "@xmlns:xsi": string;
    "@xsi:type": DossierParlementaireXsiType;
    uid: string;
    legislature: string;
    titreDossier: TitreDossier;
    procedureParlementaire: ProcedureParlementaire;
    initiateur: Initiateur | null;
    actesLegislatifs: ActesLegislatifs | null;
    indexation?: Indexation;
    fusionDossier: FusionDossier | null;
    PLF?: Plf;
}
export declare enum DossierParlementaireXsiType {
    DossierCommissionEnqueteType = "DossierCommissionEnquete_Type",
    DossierIniativeExecutifType = "DossierIniativeExecutif_Type",
    DossierLegislatifType = "DossierLegislatif_Type",
    DossierMissionControleType = "DossierMissionControle_Type",
    DossierMissionInformationType = "DossierMissionInformation_Type",
    DossierResolutionAn = "DossierResolutionAN"
}
export interface Plf {
    EtudePLF: EtudePlf[];
}
export interface EtudePlf {
    uid: string;
    organeRef: string;
    texteAssocie?: string;
    rapporteur?: Rapporteur[] | Rapporteur;
    missionMinefi?: MissionMinefiElement;
    ordreDIQS: string;
    ordreCommission: string;
}
export interface Missions {
    mission: MissionMinefiElement[] | MissionMinefiElement;
}
export interface MissionMinefiElement {
    typeMission: TypeMission;
    codeMission?: string;
    libelleLong: string;
    libelleCourt: string;
    typeBudget: TypeBudget;
    missions?: Missions;
}
export declare enum TypeBudget {
    BudgetAnnexe = "Budget annexe",
    BudgetGénéral = "Budget g\u00E9n\u00E9ral",
    CompteDeConcoursFinancier = "Compte de concours financier",
    CompteSpécial = "Compte sp\u00E9cial",
    PremièrePartie = "Premi\u00E8re partie"
}
export declare enum TypeMission {
    MissionPrincipale = "mission principale",
    MissionSecondaire = "mission secondaire",
    PartieDeMission = "partie de mission"
}
export interface ActesLegislatifs {
    acteLegislatif: ActeLegislatif[] | ActeLegislatif;
}
export interface ActeLegislatif {
    "@xsi:type": ActeLegislatifXsiType;
    uid: string;
    codeActe: CodeActe;
    libelleActe: LibelleActe;
    organeRef?: string;
    dateActe: Date | null;
    actesLegislatifs: ActesLegislatifs | null;
    texteAssocie?: string;
    contributionInternaute?: ContributionInternaute;
    provenance?: string;
    depotInitialLectureDefinitiveRef?: null | string;
    initiateur?: Initiateur;
    statutConclusion?: FamCodeEtLibelle;
    reunionRef?: string | null;
    odjRef?: string | null;
    odSeancejRef?: null;
    voteRefs?: VoteRefs | null;
    textesAssocies?: TextesAssocies;
    rapporteurs?: Rapporteurs;
    reunion?: null;
    texteAdopte?: null | string;
    casSaisine?: FamCodeEtLibelle;
    decision?: FamCodeEtLibelle;
    formuleDecision?: string;
    initiateurs?: InitiateursRefs | null;
    motif?: Motif;
    urlConclusion?: string;
    numDecision?: string;
    anneeDecision?: string;
    typeDeclaration?: FamCodeEtLibelle;
    typeMotionCensure?: FamCodeEtLibelle;
    auteurs?: ActeLegislatifAuteurs | null;
    typeMotion?: FamCodeEtLibelle;
    auteurMotion?: string;
    dateRetrait?: null;
    texteLoiRef?: string;
    infoJO?: InfoJoElement | null;
    urlEcheancierLoi?: null | string;
    codeLoi?: string;
    titreLoi?: string | null;
    infoJORect?: InfoJoElement[] | InfoJoElement;
    texteEuropeen?: TexteEuropeen;
    infoJOCE?: InfoJoce;
    statutAdoption?: FamCodeEtLibelle;
    urlLegifrance?: string;
    referenceNOR?: string;
    texteExterneAssocie?: TexteExterneAssocie;
}
export declare enum ActeLegislatifXsiType {
    AdoptionEuropeType = "Adoption_Europe_Type",
    ConclusionEtapeCcType = "ConclusionEtapeCC_Type",
    ConvocationCongresType = "ConvocationCongres_Type",
    CreationOrganeTemporaireType = "CreationOrganeTemporaire_Type",
    DecisionMotionCensureType = "DecisionMotionCensure_Type",
    DecisionRecevabiliteBureauType = "DecisionRecevabiliteBureau_Type",
    DecisionType = "Decision_Type",
    DeclarationGouvernementType = "DeclarationGouvernement_Type",
    DepotAccordInternationalType = "DepotAccordInternational_Type",
    DepotAvisConseilEtatType = "DepotAvisConseilEtat_Type",
    DepotInitiativeNavetteType = "DepotInitiativeNavette_Type",
    DepotInitiativeType = "DepotInitiative_Type",
    DepotLettreRectificativeType = "DepotLettreRectificative_Type",
    DepotMotionCensureType = "DepotMotionCensure_Type",
    DepotMotionReferendaireType = "DepotMotionReferendaire_Type",
    DepotRapportType = "DepotRapport_Type",
    DiscussionCommissionType = "DiscussionCommission_Type",
    DiscussionSeancePubliqueType = "DiscussionSeancePublique_Type",
    EtapeType = "Etape_Type",
    EtudeImpactType = "EtudeImpact_Type",
    MotionProcedureType = "MotionProcedure_Type",
    NominRapporteursType = "NominRapporteurs_Type",
    ProcedureAccelereType = "ProcedureAccelere_Type",
    PromulgationType = "Promulgation_Type",
    RenvoiPrealableType = "RenvoiPrealable_Type",
    RenvoiCmpType = "RenvoiCMP_Type",
    RetraitInitiativeType = "RetraitInitiative_Type",
    SaisieComAvisType = "SaisieComAvis_Type",
    SaisieComFondType = "SaisieComFond_Type",
    SaisineConseilConstitType = "SaisineConseilConstit_Type"
}
export interface LibelleActe {
    nomCanonique: string;
    libelleCourt?: string;
}
export interface Rapporteur {
    acteurRef: string;
    typeRapporteur: Qualite;
    etudePLFRef?: string;
}
export interface Rapporteurs {
    rapporteur: Rapporteur[] | Rapporteur;
}
export interface FamCodeEtLibelle {
    fam_code: string;
    libelle?: string;
}
export interface Rapporteurs {
    rapporteur: Rapporteur[] | Rapporteur;
}
export interface TextesAssocies {
    texteAssocie: TexteAssocieElement[] | TexteAssocieElement;
}
export interface TexteAssocieElement {
    typeTexte: TypeTexte;
    refTexteAssocie: string;
}
export declare enum TypeTexte {
    Bta = "BTA",
    Tap = "TAP"
}
export interface VoteRefs {
    voteRef: string[] | string;
}
export interface ActeLegislatifAuteurs {
    acteurRef: string[] | string;
}
export interface ContributionInternaute {
    dateFermeture: null | string;
    dateOuverture?: string;
}
export interface ActeurElement {
    acteurRef: string;
    mandatRef: string;
}
export declare enum Motif {
    EnApplicationDeLArticle612DeLaConstitution = "En application de l'article 61\u00A72 de la Constitution"
}
export interface InfoJoElement {
    typeJO: TypeJo;
    dateJO: string;
    pageJO: null;
    numJO: string;
    urlLegifrance?: string;
    referenceNOR?: string;
}
export declare enum TypeJo {
    JoLoiDecret = "JO_LOI_DECRET"
}
export interface FusionDossier {
    cause: Cause;
    dossierAbsorbantRef: string;
}
export declare enum Cause {
    DossierAbsorbé = "Dossier absorb\u00E9",
    ExamenCommun = "Examen commun"
}
export interface Initiateur {
    acteurs?: InitiateurActeurs;
    organes?: Organes;
}
export interface InitiateurActeurs {
    acteur: ActeurElement[] | ActeurElement;
}
export interface Organes {
    organe: OrganesOrgane;
}
export interface OrganesOrgane {
    organeRef: OrganeRefClass;
}
export interface OrganeRefClass {
    uid: string;
}
export interface TitreDossier {
    titre: string;
    titreChemin: null | string;
    senatChemin: null | string;
}
export interface DossiersLegislatifs {
    export: Export;
}
export interface Export {
    "@xmlns:xsi": string;
    textesLegislatifs: TextesLegislatifs;
    dossiersLegislatifs: DossiersLegislatifsClass;
}
export interface DossiersLegislatifsClass {
    dossier: Dossier[];
}
export interface Dossier {
    dossierParlementaire: DossierDossierParlementaire;
}
export interface DossierDossierParlementaire {
    "@xsi:type"?: DossierParlementaireXsiType;
    uid: string;
    legislature: string;
    titreDossier: TitreDossier;
    procedureParlementaire: ProcedureParlementaire;
    initiateur: Initiateur | null;
    actesLegislatifs: ActesLegislatifs;
    indexation?: Indexation;
    fusionDossier: FusionDossier | null;
    PLF?: Plf;
}
export interface InfoJoce {
    refJOCE: string;
    dateJOCE: string;
}
export interface TexteEuropeen {
    typeTexteEuropeen: string;
    titreTexteEuropeen: string;
}
export interface Indexation {
    themes: Themes;
}
export interface Themes {
    "@niveau": string;
    theme: Theme;
}
export interface Theme {
    libelleTheme: string;
}
export interface TextesLegislatifs {
    document: DocumentElement[];
}
export interface DocumentElement {
    "@xsi:type": DocumentXsiType;
    uid: string;
    legislature: null | string;
    cycleDeVie: CycleDeVie;
    denominationStructurelle: DocumentDenominationStructurelle;
    provenance?: Provenance;
    titres: Titres;
    divisions: Divisions | null;
    dossierRef: string;
    redacteur: null;
    classification: Classification;
    auteurs: Auteurs;
    correction: Correction | null;
    notice: Notice;
    indexation: Indexation | null;
    imprimerie: Imprimerie | null;
    coSignataires?: CoSignataires | null;
    depotAmendements?: DepotAmendements | null;
    rapportPublie?: string;
}
export interface TexteExterneAssocie {
    typeDoc: TexteExterneAssocieTypeDoc;
    texteRef: string;
    titreDoc: string;
    urlDoc: string;
}
export declare enum TexteExterneAssocieTypeDoc {
    Decret = "D\u00E9cret"
}
export declare class Convert {
    static toDocument(json: string): Document;
    static documentToJson(value: Document): string;
    static toDossierParlementaire(json: string): DossierParlementaire;
    static dossierParlementaireToJson(value: DossierParlementaire): string;
    static toDossiersLegislatifs(json: string): DossiersLegislatifs;
    static dossiersLegislatifsToJson(value: DossiersLegislatifs): string;
}
