private string GetInterfaceMember(Declaration member, string interfaceName, string memberBody)
        {
            var implementingMemberName = $"{interfaceName}_{member.IdentifierName}";

            if (member is ModuleBodyElementDeclaration mbed)
            {
                return(_codeBuilder.BuildMemberBlockFromPrototype(mbed, accessibility: Accessibility.Private, newIdentifier: $"{interfaceName}_{member.IdentifierName}", content: memberBody));
            }

            if (member is VariableDeclaration variable)
            {
                if (!_codeBuilder.TryBuildPropertyGetCodeBlock(variable, $"{interfaceName}_{variable.IdentifierName}", out var propertyGet, Accessibility.Private, memberBody))
                {
                    throw new InvalidOperationException();
                }

                var members = new List <string> {
                    propertyGet
                };

                if (variable.AsTypeName.Equals(Tokens.Variant) || !variable.IsObject)
                {
                    if (!_codeBuilder.TryBuildPropertyLetCodeBlock(variable, $"{interfaceName}_{variable.IdentifierName}", out var propertyLet, Accessibility.Private, memberBody))
                    {
                        throw new InvalidOperationException();
                    }
                    members.Add(propertyLet);
                }

                if (variable.AsTypeName.Equals(Tokens.Variant) || variable.IsObject)
                {
                    if (!_codeBuilder.TryBuildPropertySetCodeBlock(variable, $"{interfaceName}_{variable.IdentifierName}", out var propertySet, Accessibility.Private, memberBody))
                    {
                        throw new InvalidOperationException();
                    }
                    members.Add(propertySet);
                }

                return(string.Join($"{NewLines.DOUBLE_SPACE}", members));
            }

            return(string.Empty);
        }