/** Parse `.freezer` file contents into ordered rules. */
export declare function parseFreezer(content: string): FreezerRule[];
/** Build a matcher from already-parsed rules. */
export declare function createMatcher(rules: FreezerRule[]): FreezerMatcher;
/**
 * Load the freezer matcher for a build context. Reads `.freezer`, falling back
 * to `.dockerignore`. When `extraDir` is given (e.g. the directory holding the
 * Dockerfile), it is searched too — so a generated Dockerfile + `.freezer` pair
 * tucked away under `storage/framework` still filters the context. The freezer
 * file itself and `.git` are always excluded.
 */
export declare function loadFreezer(contextDir: string, extraDir?: string): FreezerMatcher;
/**
 * pantry's home-themed `.dockerignore`. The build context is filtered by a
 * `.freezer` file in the context root; `.dockerignore` is honored as a
 * fallback for drop-in compatibility with existing projects.
 *
 * Syntax matches `.dockerignore`:
 *   - one pattern per line; blank lines and `#` comments are ignored
 *   - `*` matches any run of non-separator chars, `**` crosses separators
 *   - `?` matches a single non-separator char
 *   - a leading `!` negates (re-includes) a previously excluded path
 *   - a leading `/` is treated the same as no leading slash (patterns are
 *     always relative to the context root)
 */
export declare interface FreezerMatcher {
  ignores: (relPath: string) => boolean
  rules: FreezerRule[]
}
export declare interface FreezerRule {
  pattern: string
  negated: boolean
  regex: RegExp
}
