import * as _pt from 'exupery-core-types';
export type _T_Derived_Reference<G_Source, T_Type> = null;
export type _T_Dictionary<G_Source, T_D> = {
    readonly 'dictionary': _pt.Dictionary<{
        readonly 'entry': T_D;
        readonly 'location': G_Source;
    }>;
    readonly 'location': G_Source;
};
export type _T_List<G_Source, T_L> = {
    readonly 'list': _pt.Array<{
        readonly 'element': T_L;
        readonly 'location': G_Source;
    }>;
    readonly 'location': G_Source;
};
export type _T_Ordered_Dictionary<G_Source, T_D> = {
    readonly 'dictionary': _pt.Dictionary<{
        readonly 'entry': T_D;
        readonly 'location': G_Source;
    }>;
    readonly 'location': G_Source;
};
export type _T_Reference_To_Circular_Dependent_Sibling<G_Source, T_Dictionary_Entry> = {
    readonly 'key': string;
    readonly 'location': G_Source;
};
export type _T_Reference_To_Normal_Dictionary_Entry<G_Source, T_Dictionary_Entry> = {
    readonly 'key': string;
    readonly 'location': G_Source;
};
export type _T_Reference_To_Stacked_Dictionary_Entry<G_Source, T_Dictionary_Entry> = {
    readonly 'key': string;
    readonly 'location': G_Source;
    readonly 'up steps': number;
};
export type _T_State_Group<G_Source, T_SG> = {
    readonly 'location': G_Source;
    readonly 'state group': T_SG;
};
export type Derived_Reference<G_Source, T_Type> = _T_Derived_Reference<G_Source, T_Type>;
export type Dictionary<G_Source, T_D> = _T_Dictionary<G_Source, T_D>;
export type List<G_Source, T_L> = _T_List<G_Source, T_L>;
export type Ordered_Dictionary<G_Source, T_D> = _T_Ordered_Dictionary<G_Source, T_D>;
export type Reference_To_Circular_Dependent_Sibling<G_Source, T_Dictionary_Entry> = _T_Reference_To_Circular_Dependent_Sibling<G_Source, T_Dictionary_Entry>;
export type Reference_To_Normal_Dictionary_Entry<G_Source, T_Dictionary_Entry> = _T_Reference_To_Normal_Dictionary_Entry<G_Source, T_Dictionary_Entry>;
export type Reference_To_Stacked_Dictionary_Entry<G_Source, T_Dictionary_Entry> = _T_Reference_To_Stacked_Dictionary_Entry<G_Source, T_Dictionary_Entry>;
export type State_Group<G_Source, T_SG> = _T_State_Group<G_Source, T_SG>;
export declare namespace _T_Dictionary {
    namespace dictionary {
        namespace D {
            type entry<G_Source, T_D> = T_D;
            type location<G_Source, T_D> = G_Source;
        }
        type D<G_Source, T_D> = {
            readonly 'entry': T_D;
            readonly 'location': G_Source;
        };
    }
    type dictionary<G_Source, T_D> = _pt.Dictionary<{
        readonly 'entry': T_D;
        readonly 'location': G_Source;
    }>;
    type location<G_Source, T_D> = G_Source;
}
export declare namespace _T_List {
    namespace list {
        namespace L {
            type element<G_Source, T_L> = T_L;
            type location<G_Source, T_L> = G_Source;
        }
        type L<G_Source, T_L> = {
            readonly 'element': T_L;
            readonly 'location': G_Source;
        };
    }
    type list<G_Source, T_L> = _pt.Array<{
        readonly 'element': T_L;
        readonly 'location': G_Source;
    }>;
    type location<G_Source, T_L> = G_Source;
}
export declare namespace _T_Ordered_Dictionary {
    namespace dictionary {
        namespace D {
            type entry<G_Source, T_D> = T_D;
            type location<G_Source, T_D> = G_Source;
        }
        type D<G_Source, T_D> = {
            readonly 'entry': T_D;
            readonly 'location': G_Source;
        };
    }
    type dictionary<G_Source, T_D> = _pt.Dictionary<{
        readonly 'entry': T_D;
        readonly 'location': G_Source;
    }>;
    type location<G_Source, T_D> = G_Source;
}
export declare namespace _T_Reference_To_Circular_Dependent_Sibling {
    type key<G_Source, T_Dictionary_Entry> = string;
    type location<G_Source, T_Dictionary_Entry> = G_Source;
}
export declare namespace _T_Reference_To_Normal_Dictionary_Entry {
    type key<G_Source, T_Dictionary_Entry> = string;
    type location<G_Source, T_Dictionary_Entry> = G_Source;
}
export declare namespace _T_Reference_To_Stacked_Dictionary_Entry {
    type key<G_Source, T_Dictionary_Entry> = string;
    type location<G_Source, T_Dictionary_Entry> = G_Source;
    type up_steps<G_Source, T_Dictionary_Entry> = number;
}
export declare namespace _T_State_Group {
    type location<G_Source, T_SG> = G_Source;
    type state_group<G_Source, T_SG> = T_SG;
}
export declare namespace Dictionary {
    namespace dictionary {
        namespace D {
            type entry<G_Source, T_D> = T_D;
            type location<G_Source, T_D> = G_Source;
        }
        type D<G_Source, T_D> = {
            readonly 'entry': T_D;
            readonly 'location': G_Source;
        };
    }
    type dictionary<G_Source, T_D> = _pt.Dictionary<{
        readonly 'entry': T_D;
        readonly 'location': G_Source;
    }>;
    type location<G_Source, T_D> = G_Source;
}
export declare namespace List {
    namespace list {
        namespace L {
            type element<G_Source, T_L> = T_L;
            type location<G_Source, T_L> = G_Source;
        }
        type L<G_Source, T_L> = {
            readonly 'element': T_L;
            readonly 'location': G_Source;
        };
    }
    type list<G_Source, T_L> = _pt.Array<{
        readonly 'element': T_L;
        readonly 'location': G_Source;
    }>;
    type location<G_Source, T_L> = G_Source;
}
export declare namespace Ordered_Dictionary {
    namespace dictionary {
        namespace D {
            type entry<G_Source, T_D> = T_D;
            type location<G_Source, T_D> = G_Source;
        }
        type D<G_Source, T_D> = {
            readonly 'entry': T_D;
            readonly 'location': G_Source;
        };
    }
    type dictionary<G_Source, T_D> = _pt.Dictionary<{
        readonly 'entry': T_D;
        readonly 'location': G_Source;
    }>;
    type location<G_Source, T_D> = G_Source;
}
export declare namespace Reference_To_Circular_Dependent_Sibling {
    type key<G_Source, T_Dictionary_Entry> = string;
    type location<G_Source, T_Dictionary_Entry> = G_Source;
}
export declare namespace Reference_To_Normal_Dictionary_Entry {
    type key<G_Source, T_Dictionary_Entry> = string;
    type location<G_Source, T_Dictionary_Entry> = G_Source;
}
export declare namespace Reference_To_Stacked_Dictionary_Entry {
    type key<G_Source, T_Dictionary_Entry> = string;
    type location<G_Source, T_Dictionary_Entry> = G_Source;
    type up_steps<G_Source, T_Dictionary_Entry> = number;
}
export declare namespace State_Group {
    type location<G_Source, T_SG> = G_Source;
    type state_group<G_Source, T_SG> = T_SG;
}
