--- /dev/null
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package format contains types for defining language-specific formatting of
+// values.
+//
+// This package is internal now, but will eventually be exposed after the API
+// settles.
+package format // import "golang.org/x/text/internal/format"
+
+import (
+ "fmt"
+
+ "golang.org/x/text/language"
+)
+
+// State represents the printer state passed to custom formatters. It provides
+// access to the fmt.State interface and the sentence and language-related
+// context.
+type State interface {
+ fmt.State
+
+ // Language reports the requested language in which to render a message.
+ Language() language.Tag
+
+ // TODO: more info:
+ // - sentence context
+ // - user preferences, like measurement systems
+ // - options
+}
+
+// A Statement is a Var or an Expression.
+type Statement interface {
+ statement()
+}
+
+// A String a literal string format.
+type String string
+
+func (String) statement() {}
+
+// TODO: Select, Var, Case, StatementSequence