import { ParsedTypeId } from '../utils/parse-type-id'; export interface StorageLayout { layoutVersion?: string; solcVersion?: string; storage: StorageItem[]; types: Record; flat?: boolean; namespaces?: Record; } export type StorageField = StorageItem | StructMember; export interface StorageItem { astId?: number; contract: string; label: string; type: Type; src: string; offset?: number; slot?: string; retypedFrom?: string; renamedFrom?: string; } export interface TypeItem { label: string; members?: TypeItemMembers; numberOfBytes?: string; underlying?: Type; } export type TypeItemMembers = StructMember[] | EnumMember[]; export interface StructMember { label: string; type: Type; retypedFrom?: string; renamedFrom?: string; offset?: number; slot?: string; } export type EnumMember = string; export interface ParsedTypeDetailed extends ParsedTypeId { item: TypeItem; args?: ParsedTypeDetailed[]; rets?: ParsedTypeDetailed[]; } export declare function getDetailedLayout(layout: StorageLayout): StorageItem[]; export declare function isEnumMembers(members: TypeItemMembers): members is EnumMember[]; export declare function isStructMembers(members: TypeItemMembers): members is StructMember[]; export type StorageFieldWithLayout = StorageField & Required> & { type: { item: Required>; }; }; export declare function hasLayout(field: StorageField): field is StorageFieldWithLayout; //# sourceMappingURL=layout.d.ts.map